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,然后再次对其调用该函数。相关输出显示在控制台上。