জাভাতে গার্বেজ কালেকশন একটি ডেমন থ্রেড দ্বারা সম্পন্ন হয় যাকে গার্বেজ কালেক্টর (GC) বলা হয়। JVM গার্বেজ কালেক্টর চালানোর জন্য অপেক্ষা না করে আমরা JVM-কে গার্বেজ কালেক্টর চালানোর অনুরোধ করতে পারি। JVM আমাদের অনুরোধ গ্রহণ করবে কিনা इसकी কোনো গ্যারান্টি নেই।
জাভাতে, আমরা ম্যানুয়ালি দুটি পদ্ধতিতে গার্বেজ কালেক্টর কল করতে পারি:
- System ক্লাস ব্যবহার করে
- Runtime ক্লাস ব্যবহার করে
System ক্লাস ব্যবহার করে
System ক্লাসের একটি স্ট্যাটিক মেথড রয়েছে 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
Runtime ক্লাস ব্যবহার করে
Runtime জাভাতে একটি সিঙ্গলটন ক্লাস এবং আমরা getRuntime() মেথড ব্যবহার করে একটি রানটাইম অবজেক্ট পেতে পারি। gc() মেথড Runtime ক্লাসের এবং এটি একটি ইনস্ট্যান্স মেথড।
উদাহরণ
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