অপ্রস্তুত বস্তু ধ্বংস করার প্রক্রিয়াকে বলা হয় আবর্জনা সংগ্রহ (GC) . একবার কোনো বস্তুকে রেফারেন্স করা না হলে এটি একটি অব্যবহৃত বস্তু হিসেবে বিবেচিত হয়, তাই JVM স্বয়ংক্রিয়ভাবে সেই বস্তুটিকে ধ্বংস করে।
কোনো বস্তুকে GC-এর জন্য যোগ্য করার বিভিন্ন উপায় আছে।
একটি বস্তুর রেফারেন্স বাতিল করে
আমরা সমস্ত উপলব্ধ বস্তুর রেফারেন্স "null এ সেট করতে পারি " একবার একটি বস্তু তৈরির উদ্দেশ্য পূরণ হয়৷
৷উদাহরণ
public class GCTest1 { public static void main(String [] args){ String str = "Welcome to TutorialsPoint"; // String object referenced by variable str and it is not eligible for GC yet. str = null; // String object referenced by variable str is eligible for 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"; // String object referenced by variable str1 and str2 and is not eligible for GC yet. str1 = str2; // String object referenced by variable str1 is eligible for GC. System.out.println("str1: " + str1); } }
আউটপুট
str1: Welcome to Tutorix