什么是java中的幻像引用

Muk*_*oel 1 java reference

Java中有四种类型的引用:强,弱,弱和幻像.请详细说明Java在何处以及如何使用幻像引用.

编辑:

我确实读过javaDoc,就像下面发布的assylias一样.该部分说,如果一个物体已经完成并且有一些幻象参考指向它,那么这个物体就是幻像可重复的.我完全得到了这个说法.

幻影有什么用?我们在哪些情况下使用它?

ass*_*ias 12

每个类型的引用如何工作在java.lang.ref包javadoc中描述:

从最强到最弱,不同的可达性水平反映了物体的生命周期.它们在操作上定义如下:

  • 如果某个对象可以在不遍历任何引用对象的情况下到达某个对象,则该对象是强可访问的.新创建的对象可由创建它的线程强烈访问.
  • 如果一个对象不能很容易到达,则可以轻柔地到达,但可以通过遍历软引用来访问该对象.
  • 如果一个对象既不强也不可轻易到达,则可以通过遍历弱引用来到达弱对象.当清除对弱可达对象的弱引用时,该对象将有资格进行最终确定.
  • 如果一个物体既不是强烈的,柔和的,也不是微弱的可触及的,那么该物体是幻影可达的,它已被最终确定,并且一些幻象参考指的是它.
  • 最后,如果无法通过上述任何方式访问某个对象,则该对象无法访问,因此有资格进行回收.

Stack OVerflow上有一些帖子提供了您可能需要的方式和时间的示例PhantomReference:

  • 谢谢,但我确实是从 javadoc 中读到的。了解强、软和弱。但是很容易产生幻觉。它到底是什么,我应该在哪里使用它。 (2认同)