java 好像不能做到吧。对象和引用的关系是由引用来维护的好像。要不垃圾收集器就不用遍历找引用了,直接检查对象实例本身就可以决定是否清除它了。

解决方案 »

  1.   

    对象本身没有这种方法,如果这个类是你写的话就可以实现。在类里面设一个static的变量,每引用一次就简单的+1。
    public class A {
       private static int count = 0;
       public A() {
          count++;
       }
    }
      

  2.   

    to  happyegg(快乐蛋) 
    如果一个引用被舍弃,那么记录的引用数量就不准确了。
      

  3.   

    happyegg(快乐蛋) ,你的那个count应申明成static,然后再想办法在不用是能减一个
      

  4.   

    哦,没考虑到引用舍弃。java里面没有析构函数,可能要多写一个函数在引用完后减一的,但是这样要手写控制,太不方便了,有一个程序漏写就统计不准了。我想不出有什么办法了
      

  5.   

    public class A {
       private static int count = 0;
       public A() {
          count++;
       }
      protected void finalize()
    {
       count--;
    }
    }
    不知道对不对,finalize()最有用处的一个地方就是观察垃圾收集的过程
      

  6.   

    finalize()方法不会在引用一丢失就被执行,
    所以,其实你根本不知道什么时候被执行,用它来控制COUNT的递减是很不准确的。
      

  7.   

    据说一般java虚拟击内部都是通过引用来处理对象的生命周期,但是java语言标准上没有指明,这就是麻烦的根源。java的败笔