团队,
java中是否有可能知道当前可用的对象有多少活动/强引用?
例如在下面的代码中;A 类的对象可以被项目中的许多类持有。但我想在监视器线程中打印它。
public class A {
public static A a = new A();
public static A getInstance() {
return a;
}
private A() {
new Monitor(this).start();
}
class Monitor extends Thread {
A refA;
public Monitor(A ref) {
this.refA = ref;
}
public void run () {
//TODO Print how many references currently available for Object A referenced by refA;
//Sure It will be minimum one. (which is "a" in this class A)
}
}
}
请不要太重视这个示例程序。我的问题是如何找到堆/堆栈中对象可用的强引用数量?唯一的好处是我们为该对象提供了一个强有力的参考。
如果在 java 中是不可能的;我可以通过这个对 C 语言的强引用吗?从C语言我能做到吗?
我只是想知道探查器/工具是如何做到这一点的?请帮忙。