Java中的引用类型

根据对数据进行垃圾收集的方式,有四种不同类型的引用。

  • 有力的参考

  • 参考不足

  • 软参考

  • 幻影参考

强大的参考

这是参考对象的默认类型。具有有效强引用的对象不能被垃圾收集。只有强引用的变量指向null才有可能。让我们看一个例子-

示例

class Demo {
   //一些功能
}
public class Demo_example{
   public static void main(String[] args){
      Demo my_inst = new Demo();
      my_inst = null;
   }
}

参考不足

它们不是参考对象的默认类,因此需要明确指定。它通常与WeakHashmap一起使用,以引用条目对象。Java虚拟机将此类弱引用标记为垃圾回收。此类引用是使用'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”的类中,定义了主要功能,并创建了一个Demo类的实例。在实例上调用“ display_msg”函数。创建对Demo类的weakReference,并将Demo insatne分配为null,然后在其上再次调用该函数。相关输出将显示在控制台上。