我认为:
1)如果一个类中有静态方法,那么只要有其他类的方法调用了该类的静态方法,该类将会永驻虚拟机中,垃圾回收对其无效!
2)对于没有静态方法的类,垃圾回收机制可以将其所有实例全部销毁!不知道这样理解对不对,欢迎大家指正!

解决方案 »

  1.   

    谢谢 jihanzhong(逍遥) :
    顶一个,any suggestion?any idea?
      

  2.   

    to  nimifeng:
     应该不会永驻虚拟机...
    why?
      

  3.   

    不正确,在一般情况下面只要一个类曾经被使用了,这个类本身就已经一直停留在JVM中而不会被释放
    注意,我指的是这个类本身,而不是这个类的那些实例
      

  4.   

    作为一个class,它被classloader加载后将永久存在,即Class对象,JVM会维护一个Class对象的列表,其中为当前已经被load起来的class, 而对于该类的对象的生命期可能是不同的,作为非静态类对象,可以被GC回收,而对于静态类,它中的方法可以直接通过class来调用,不需要创建对象,因此不存在静态类对象的生命期问题。