根据对数据进行垃圾收集的方式,有四种不同类型的引用。
有力的参考
参考不足
软参考
幻影参考
这是参考对象的默认类型。具有有效强引用的对象不能被垃圾收集。只有强引用的变量指向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,然后在其上再次调用该函数。相关输出将显示在控制台上。