กระบวนการทำลายวัตถุที่ไม่อ้างอิงเรียกว่า Garbage Collection(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