是否可以测试java中对象的其他引用是否存在?
即使操作效率低下,我也希望在调试时断言,一旦给定的引用超出范围,给定的对象将被垃圾收集。
这可能吗?
由于
答案 0 :(得分:2)
您可以简单地覆盖finalize方法,然后在方法中放置一个断点。一旦对象被垃圾收集,您将在调试器中看到。但请注意,在生产系统中覆盖finalize方法是非常不需要的,因为它会严重影响GC。所以在调试之后,删除方法。
答案 1 :(得分:2)
没有标准的Java API可以这样做。
但是,您的特定JVM可以使用JVM特定的诊断API。
答案 2 :(得分:0)
正如安德森所说的关于JVM api。字符串类使用intern方法检查池中已存在的对象。他们使用这个名为
的API public String intern() {
return VM.intern(this);
}
org.apache.harmony.kernel.vm.VM
类是本机代码。