怎样等到某个对象的引用个数? java 好像不能做到吧。对象和引用的关系是由引用来维护的好像。要不垃圾收集器就不用遍历找引用了,直接检查对象实例本身就可以决定是否清除它了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 对象本身没有这种方法,如果这个类是你写的话就可以实现。在类里面设一个static的变量,每引用一次就简单的+1。public class A { private static int count = 0; public A() { count++; }} to happyegg(快乐蛋) 如果一个引用被舍弃,那么记录的引用数量就不准确了。 happyegg(快乐蛋) ,你的那个count应申明成static,然后再想办法在不用是能减一个 哦,没考虑到引用舍弃。java里面没有析构函数,可能要多写一个函数在引用完后减一的,但是这样要手写控制,太不方便了,有一个程序漏写就统计不准了。我想不出有什么办法了 public class A { private static int count = 0; public A() { count++; } protected void finalize(){ count--;}}不知道对不对,finalize()最有用处的一个地方就是观察垃圾收集的过程 finalize()方法不会在引用一丢失就被执行,所以,其实你根本不知道什么时候被执行,用它来控制COUNT的递减是很不准确的。 据说一般java虚拟击内部都是通过引用来处理对象的生命周期,但是java语言标准上没有指明,这就是麻烦的根源。java的败笔 java定时器产生的延迟问题 java 创建迅雷调用对象(agent) 求学 请问一个有关JAVA包的问题, JAVA 的包如何使用? JDK安装问题 JMF达人请入:如何将缓冲区一段声音采样数据播放? 求Java工具 xml解析除问题啦!! 一个关于网络方面的问题,请各位帮忙,万分感谢! (紧急) 线程的问题~~~~~~~ 三款Java分析器点评 菜鸟求教!用jcreator调试java程序是不是还必须装jsdk?
public class A {
private static int count = 0;
public A() {
count++;
}
}
如果一个引用被舍弃,那么记录的引用数量就不准确了。
private static int count = 0;
public A() {
count++;
}
protected void finalize()
{
count--;
}
}
不知道对不对,finalize()最有用处的一个地方就是观察垃圾收集的过程
所以,其实你根本不知道什么时候被执行,用它来控制COUNT的递减是很不准确的。