请问我如果new了一个对象(譬如obj)后,当这个对象使用完后,我如果没有obj=null,
jvm是不是,不会将它收回并释放啊??
线程是不是也是如此,如Thread t = new Thread();t.start();后,如果没有t=null;
是不是也吗、不能被收回,释放呢 ????
请各位指教,谢谢!!!!!

解决方案 »

  1.   

    没有任何人使用的一个或者一组对象,会通过垃圾回收机制,被某个时间回收垃圾回收请参考这个文章全面分析Java的垃圾回收机制
      

  2.   

    1、不需要赋值为 null,JVM 也会回收。实际上,赋值为 null 这样的语句完全没有用。
    2、线程也会回收。凡是能够自动释放的资源,都会被回收,那些不能自动释放的资源,比如数据库连接,就必须手动写管比语句,并且要保证关闭语句一定会执行。否则不会被回收。
      

  3.   

    为null表示让垃圾回收器知道这个对象要回收了。如果不写的话,就需要等对象自动回收。
      

  4.   

    "没有任何人使用的一个或者一组对象,会通过垃圾回收机制,被某个时间回收 ."
    "为null表示让垃圾回收器知道这个对象要回收了。如果不写的话,就需要等对象自动回收"这样就是说如果某个对象不再被使用了,将会被自动收回;
    而如果将其置为null,则就是表示其现在没有被使用,通知垃圾回收器将其收回。
    是这个样子吗? 
      

  5.   


    两个问题 都是会回收。
    java有垃圾回收机制。
    不同的的JVM有不同的垃圾回收机制,
    说一下 下面这种,“自适应垃圾回收机制”。
    自己google吧,不想打字了。