কম্পিউটার

জাভাতে আবর্জনা সংগ্রাহক (জিসি) কল করার কত উপায়?


জাভাতে আবর্জনা সংগ্রহ একটি ডেমন থ্রেড দ্বারা বহন করা হয় যাকে বলা হয় গার্বেজ কালেক্টর (GC)। JVM একটি আবর্জনা সংগ্রহকারী চালানোর জন্য অপেক্ষা করার পরিবর্তে আমরা JVM কে আবর্জনা সংগ্রহকারী চালানোর জন্য অনুরোধ করতে পারি। JVM আমাদের অনুরোধ গ্রহণ করবে কি না তার কোন নিশ্চয়তা নেই।

জাভাতে, আমরা দুটি উপায়ে ম্যানুয়ালি আবর্জনা সংগ্রহকারীকে কল করতে পারি

  • সিস্টেম ক্লাস ব্যবহার করে
  • রানটাইম ক্লাস ব্যবহার করে

সিস্টেম ক্লাস ব্যবহার করে

সিস্টেম ক্লাসের একটি স্ট্যাটিক পদ্ধতি আছে gc() , যা JVM কে আবর্জনা সংগ্রহকারীকে কল করার অনুরোধ করতে ব্যবহৃত হয়।

উদাহরণ

public class SystemClassTest {
   public static void main(String[] args){
      SystemClassTest test = new SystemClassTest();
      test = null;
      System.gc();
   }
   public void finalize() {
      System.out.println("Garbage collected");
   }
}

আউটপুট

Garbage collected


রানটাইম ক্লাস ব্যবহার করে

রানটাইম একটি সিঙ্গলটন ক্লাস জাভাতে এবং আমরা getRuntime() ব্যবহার করে একটি রানটাইম অবজেক্ট পেতে পারি পদ্ধতি gc() পদ্ধতিটি রানটাইম থেকে ক্লাস এবং এটি একটি উদাহরণ পদ্ধতি।

উদাহরণ

public class RuntimeClassTest {
   public static void main(String[] args) {
      RuntimeClassTest test = new RuntimeClassTest();
      test = null;
      Runtime.getRuntime().gc();
   }
   public void finalize() {
      System.out.println("Garbage Collected");
   }
}

আউটপুট

Garbage collected

  1. জাভাতে কত ধরনের বেনামী অভ্যন্তরীণ ক্লাস সংজ্ঞায়িত করা হয়েছে?

  2. জাভাতে সদস্য অভ্যন্তরীণ শ্রেণীকে কীভাবে ইনস্ট্যান্ট করা যায়?

  3. জাভাতে মেথড ওভাররাইডিং প্রতিরোধ করার কয়টি উপায়?

  4. জাভাতে সাব-প্যাকেজ কিভাবে ব্যবহার করবেন?