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

ประเภทของการอ้างอิงใน Java


ข้อมูลอ้างอิงมีสี่ประเภทตามวิธีการรวบรวมข้อมูลขยะ

  • การอ้างอิงที่แข็งแกร่ง
  • การอ้างอิงที่อ่อนแอ
  • การอ้างอิงที่นุ่มนวล
  • ข้อมูลอ้างอิงภูตผี

อ้างอิงที่แข็งแกร่ง

เป็นชนิดเริ่มต้นของอ็อบเจ็กต์อ้างอิง ออบเจ็กต์ที่มีการอ้างอิงที่แข็งแกร่งที่ใช้งานอยู่ไม่สามารถเก็บขยะได้ เป็นไปได้ก็ต่อเมื่อตัวแปรที่มีการอ้างอิงอย่างแน่นหนาชี้ไปที่ค่า 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 และฟังก์ชันจะถูกเรียกใช้อีกครั้ง เอาต์พุตที่เกี่ยวข้องจะแสดงบนคอนโซล