gst*_*low 3 java garbage-collection phantom-reference resource-cleanup
PhantomReference java 8及以下版本的java doc如下所示:
Phantom 引用对象,在收集器确定它们的引用对象可能会被回收后入队。幻像引用最常用于以比 Java 终结机制更灵活的方式调度预检清理操作。如果垃圾收集器在某个时间点确定幻像引用的所指对象是幻像可达的,那么在那个时候或稍后的某个时间它将将该引用加入队列。
为了确保可回收对象保持如此,可能无法检索幻像引用的所指对象:幻像引用的 get 方法始终返回 null。
与软引用和弱引用不同,幻像引用在入队时不会被垃圾收集器自动清除。可通过幻像引用访问的对象将保持不变,直到所有此类引用都被清除或自身变得无法访问
PhantomReference java 9及更高版本的java doc如下所示:
Phantom 引用对象,在收集器确定它们的引用对象可能会被回收后入队。虚拟引用最常用于安排事后清理操作。假设垃圾收集器在某个时间点确定某个对象是虚拟可达的。届时,它将自动清除对该对象的所有幻影引用以及对该对象可从中访问的任何其他幻影可访问对象的所有幻影引用。同时或稍后它会将那些注册到引用队列的新清除的幻像引用加入队列。
为了确保可回收对象保持如此,可能无法检索幻像引用的所指对象:幻像引用的 get 方法始终返回 null。
java 9中的PhantomReference行为是否发生了变化?还是只是 Java 创始人重新思考了该课程的奉献精神?
| 归档时间: |
|
| 查看次数: |
454 次 |
| 最近记录: |