অনুপ্রयुक्त অবজেক্ট ধ্বংস করার প্রক্রিয়াকে গার্বেজ কালেকশন (GC) বলা হয়। একবার অবজেক্ট অনুপ্রযুক্ত (unreferenced) হলে তা অপ্রয়োজনীয় অবজেক্ট হিসেবে বিবেচনা হয়, ফলে JVM স্বয়ংক্রিয়ভাবে সেটি ধ্বংস করে দেয়।
অবজেক্টকে GC-এর জন্য যোগ্য করার বিভিন্ন পদ্ধতি রয়েছে।
অবজেক্ট রেফারেন্স নালিফাই করে
অবজেক্ট তৈরির উদ্দেশ্য পরিপূরণ হলে সকল উপলব্ধ অবজেক্ট রেফারেন্সকে "null" সেট করা যায়।
উদাহরণ
public class GCTest1 {
public static void main(String [] args){
String str = "Welcome to TutorialsPoint"; // str ভেরিয়েবল রেফারেন্স করা স্ট্রিং অবজেক্ট
// এখনও GC-এর জন্য যোগ্য নয়
str = null; // str ভেরিয়েবল রেফারেন্স করা স্ট্রিং অবজেক্ট GC-এর জন্য যোগ্য
System.out.println("str eligible for GC: " + str);
}
}
আউটপুট
str eligible for GC: null
রেফারেন্স ভেরিয়েবলকে অন্য অবজেক্টে রি-অ্যাসাইন করে
রেফারেন্স ভেরিয়েবলকে অন্য অবজেক্ট রেফার করতে পারি। রেফারেন্স ভেরিয়েবলকে অবজেক্ট থেকে আলাদা করে অন্য অবজেক্টে রেফার করালে, রি-অ্যাসাইন করার আগে যেই অবজেক্টটি রেফার করতো সেটি GC-এর জন্য যোগ্য হয়।
উদাহরণ
public class GCTest2 {
public static void main(String [] args){
String str1 = "Welcome to TutorialsPoint";
String str2 = "Welcome to Tutorix"; // str1 এবং str2 রেফারেন্স করা অবজেক্ট GC-এর জন্য যোগ্য নয়
str1 = str2; // str1 রেফারেন্স করা অবজেক্ট GC-এর জন্য যোগ্য
System.out.println("str1: " + str1);
}
}
আউটপুট
str1: Welcome to Tutorix