Java 中的引用类型

javaserver side programmingprogramming

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

  • 强引用
  • 弱引用
  • 软引用
  • 虚引用

强引用

这是引用对象的默认类型。具有活动强引用的对象无法被垃圾回收。只有当强引用的变量指向 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’ 的类中,定义了 main 函数,并创建了 Demo 类的实例。在该实例上调用 ‘display_msg’ 函数。创建对 Demo 类的弱引用,并将 Demo 实例赋值为 null,然后再次对其调用该函数。相关输出显示在控制台上。


相关文章