可能重复:
How to prevent an object from getting garbage collected?
In java when does an object become unreachable?
我在接受采访时被问到这个问题:
我该怎么做才能让一个对象无法访问垃圾收集器?
答案 0 :(得分:1)
据我所知,垃圾收集器没有“无法访问”对象。但是GC只会收集没有更多引用指向它们的项目。
所以要“保护它们”,要么将它们声明为final(常量),要么确保有一个引用始终指向该变量,例如通过在主操作循环中包含引用。
答案 1 :(得分:1)
GC将管理堆中的任何对象。您可以使一个对象始终可以访问,而不是由GC收集,但是您无法创建超出GCs范围的对象。
使数据无法访问的唯一方法是将其从本机内存中的堆中删除,将其写入磁盘或将其传递给另一个进程。
顺便说一句,即使是在另一个进程中代理的分布式RMI对象,也可以在GC不再使用时进行清理。
答案 2 :(得分:0)
使其包含对自身的静态引用(例如,单例模式)。