असंबंधित वस्तुओं को नष्ट करने की प्रक्रिया को कचरा संग्रह (GC) कहा जाता है . एक बार किसी वस्तु को संदर्भित नहीं किया जाता है तो उसे एक अप्रयुक्त वस्तु के रूप में माना जाता है, इसलिए JVM स्वचालित रूप से उस वस्तु को नष्ट कर देता है।
किसी वस्तु को GC के योग्य बनाने के कई तरीके हैं।
किसी ऑब्जेक्ट के संदर्भ को निरस्त करके
हम सभी उपलब्ध ऑब्जेक्ट संदर्भों को "शून्य . पर सेट कर सकते हैं " एक बार किसी वस्तु को बनाने का उद्देश्य पूरा हो जाने पर।
उदाहरण
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