Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

มีกี่วิธีในการสร้างวัตถุที่มีสิทธิ์สำหรับ GC ใน Java?


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