这个问题已经有答案了:
可能重复:
如何防止对象被垃圾收集器收集?
Java 中对象何时变得无法访问?
我在一次面试中被问到了这个问题: 为使对象对垃圾回收器不可访问,应该做什么?
我在一次面试中被问到了这个问题:
为使对象对垃圾回收器不可访问,应该做什么?
GC将管理堆中的任何对象。您可以使一个对象始终可达,因此不会被GC收集,但您无法使一个对象超出GC的范围。
使数据不可达的唯一方法是将其放在本地内存中的堆外,将其写入磁盘或将其传递给另一个进程。
顺便说一下,即使在另一个进程中代理的分布式RMI对象在不再使用时也可以被GC清理。
据我所知,没有任何对象是“无法访问”的,但是垃圾回收器只会回收那些没有被引用的项目。
因此,要“保护它们”,可以将它们声明为final(常量),或者确保始终有一个引用指向该变量,例如在主操作循环中包含该引用。
用户名或电子邮箱地址
密码