问题1:假如实例化一个类: Cat c=new Cat();
         然后,我让c=null;是不是就释放掉了?
   问题2:是不是程序停止了,整个程序占用的资源都被释放了?
   问题3:如果不手动释放资源,那么这个资源是不是会一次被占用!

解决方案 »

  1.   

    1.不是,要过一段时间后,如果刚刚new出来的东西没有在其它地方引用,在保证系统资源可用的情况下,垃圾回收机制过一段时间后会把它回收掉。2.是3.看情况,一般java的资源大多不用手动释放。准确地讲,如果资源没有用,符合垃圾回收的机制,则会被自动释放。如果一个类中有一个
    public static FLOAT PI = 3.14;那么这在个类被使用的程序运行期间这个PI都不可能被释放掉。
    {
      Integer k = new Integer(32423);
    }当上面这个花括号执行完成后,k就符合垃圾回收机制,等着被自动回收。
      

  2.   

       public static FLOAT PI = 3.14;因为这个是静态变量的愿因么?
       花括号跟中声明的,还方法中声明的都为局布变量,而在局布声明的变量如果没有把引用赋给其他的成员变量,这时,说明这个引用所指向的资源,不会被任何一个对像所,所以符合垃圾回收的机制,可以这样认为么?
         可以理解为当一个资源不被任何引用所指向时,就符合回收的机制?