我有一个Image属性标识为static final。由于是final,所以初始化后就不可能再被赋值为null了。那是不是说这个Image就会一直存在于内存直到这个程序被我关闭掉才会被回收呢??
谢谢...

解决方案 »

  1.   

    回收是垃圾处理器的事,关掉也不一定回收普通方法隶属于用户类,static方法属于用户类的meta类(可以用于yourClass.getClass获得)
    只要该用户类有引用,meta类就不会被回收。木引用的化就看垃圾回收器的心情了。
      

  2.   

    这个JAVA里有自动回收,设置NULL就是一个申请你这样情况具体没操作过,但是我觉得使用finallize应该能强制回收吧
      

  3.   

    java内存的回收由垃圾回收处理,finalize一般只用于使用本地代码的是内存释放工作(垃圾回收管不了),在纯java程序里,尽量不要自己写finalize。如果需要强制回收不用的东西,可以使用System.gc()。
      

  4.   

    System.gc()也要看垃圾处理器的心情的,也是不一定管用的
    so
    这个事情还是让JAVA自己来吧,不伤大雅的
      

  5.   


    怎么扯上meta了??
    谢谢
    我想这个引用是一直在的,那应该就是回收不了的了,唉,好无奈啊。
      

  6.   


    static 不是储存在用户类的对象中的,而是储存在描述用户类的meta类的对象中的。用户类实例化前要先实例meta类中的各个static
      

  7.   

    因为是static类型的。只能是等到jvm停止的时候才能释放!