比如一个应用程序,当个人所写的类被载入,生成对象,对象结束后(所占空间被释放掉),该”类“命运如何?
是从jvm也被释放掉,还是仍然存在,直到应用程序结束,?
如果仍然存在,在这个应用程序中,我第二次生成对象前(第一次对象结束后)变更了该类, 如何保证jvm能使用到最新的类??疑惑中,请各位高人解答,谢谢,谢谢

解决方案 »

  1.   

    楼上的,
    我读的是王深著的《java深度历险》第二章,深入java类装载华中科技大学出版
      

  2.   

    一个类被生成后加载后就会在jvm中分配一个地址存储,当你的类不用时,过一段时间jvm的垃圾回收机制会判断他是否已不使用,当确定过期后,之后他会回收他的内存。
    当你在程序中在new一个类的时候 这个类不是单列模式的类你得到的觉得就是一个新的类
      

  3.   

    对象结束后(所占空间被释放掉),该”类“命运如何? 
    __________垃圾车来装我第二次生成对象前(第一次对象结束后)变更了该类, 如何保证jvm能使用到最新的类?? 你在用类之前不是要编译嘛,你输入javac的时候,CLASS就更新了,JVM就能LOAD了
      

  4.   

    你在用类之前不是要编译嘛,你输入javac的时候,CLASS就更新了,JVM就能LOAD了
    -----------
    你说的是一种方式,就是原地址不改变,那
    我在别的电脑上编译呢? ,就算是自己的电脑上,如果copy到别处,编译,然后在copy过来,
    这时,如何同步呢?
      

  5.   

    =====================
    1.对象结束后,该类一直存在,它是以装载它的类装载器标识+完整类名为key,其字节码为value放在Hashtable中的。
    2.如果你变更该类
    (1)如:Test1.a=22,(假设a是Test1的静态属性),则jvm直接更新Hashtable中的value就可以了
    (2)如:修改了类的结构,则一搬服务器都执行热部署,直接重新加载该类