结构...
哥,Java里这叫“类”。会不会释放掉这块内存
不一定,什么时候也不一定。

解决方案 »

  1.   

    会在GC的时候回收内存,你这里置为null,但是他的空间还没及时还给jvm
      

  2.   

    JAVA 是自动回收内存,至于什么时候回收是由JVM决定的原则上,被回收的对象所占的内存必须满足两个条件:
    1、没有变量引用到这个对象
    2、这个对象不是一个正在运行的线程对象
    对第一条,如果有这样的代码:
    Temp obj1 = new Temp();
    ......
    Object obj2 = obj1;
    ......
    obj1 = null;因为这个时候,虽然 obj1 = null,但最初创建的 Temp 类型的对象的引用已经赋值给了变量 obj2,也就是说有一个引用类型的变量正在指向这个对象,因此这个对象不满足被回收的条件
    对于第二条,如果一个线程类正在执行线程中的代码,这个对象自然不能被回收JVM并不保证所有满足被回收条件的对象内存会被马上回收,什么时候回收是由JVM看情况决定的,就算程序中调用了 System.GC 也只是建议JVM回收内存,JVM是否采用你的建议还不一定。
      

  3.   

    没有固定时间
    会在内存不够用的时候去执行
    或者你可以手动执行System.gc();
      

  4.   

    不一定!
    t=null 只是让t指向空,GC什么时候回收new Temp()这个实体很难说
      

  5.   

    JAVA 是自动回收内存,至于什么时候回收是由JVM决定的 这个正解。。你可以调用 System.gc();来强制执行。
    但什么时候回收空间是由JVM决定。