ข้อมูลอ้างอิงมีสี่ประเภทตามวิธีการรวบรวมข้อมูลขยะ
- การอ้างอิงที่แข็งแกร่ง
- การอ้างอิงที่อ่อนแอ
- การอ้างอิงที่นุ่มนวล
- ข้อมูลอ้างอิงภูตผี
อ้างอิงที่แข็งแกร่ง
เป็นชนิดเริ่มต้นของอ็อบเจ็กต์อ้างอิง ออบเจ็กต์ที่มีการอ้างอิงที่แข็งแกร่งที่ใช้งานอยู่ไม่สามารถเก็บขยะได้ เป็นไปได้ก็ต่อเมื่อตัวแปรที่มีการอ้างอิงอย่างแน่นหนาชี้ไปที่ค่า null ลองดูตัวอย่าง -
ตัวอย่าง
class Demo {
//Some functionality
}
public class Demo_example{
public static void main(String[] args){
Demo my_inst = new Demo();
my_inst = null;
}
} การอ้างอิงที่อ่อนแอ
สิ่งเหล่านี้ไม่ใช่คลาสเริ่มต้นของอ็อบเจ็กต์อ้างอิง ดังนั้นจึงจำเป็นต้องระบุอย่างชัดเจน โดยทั่วไปจะใช้กับ WeakHashmap เพื่ออ้างอิงวัตถุรายการ การอ้างอิงที่อ่อนแอดังกล่าวถูกทำเครื่องหมายว่าเป็นการรวบรวมขยะโดย Java Virtual Machine การอ้างอิงดังกล่าวสร้างขึ้นโดยใช้คลาส 'java.lang.ref.WeakReference'
เรามาดูตัวอย่างกัน −
ตัวอย่าง
import java.lang.ref.WeakReference;
class Demo{
public void display_msg(){
System.out.println("Hello");
}
}
public class Demo_sample{
public static void main(String[] args){
Demo inst = new Demo();
inst.display_msg();
WeakReference<Demo> my_weak_ref = new WeakReference<Demo>(inst);
inst = null;
inst = my_weak_ref.get();
inst.display_msg();
} ผลลัพธ์
Hello Hello
คลาสชื่อ Demo มีฟังก์ชันชื่อ 'display_msg' ฟังก์ชันนี้แสดงข้อความที่เกี่ยวข้อง ในอีกคลาสหนึ่งชื่อ 'Demo_sample' ฟังก์ชันหลักจะถูกกำหนด และสร้างอินสแตนซ์ของคลาสสาธิต ฟังก์ชัน 'display_msg' ถูกเรียกใช้บนอินสแตนซ์ การอ้างอิงที่อ่อนแอของคลาส Demo ถูกสร้างขึ้น และ Demo insatne ถูกกำหนดให้เป็น null และฟังก์ชันจะถูกเรียกใช้อีกครั้ง เอาต์พุตที่เกี่ยวข้องจะแสดงบนคอนโซล