只要你对这个实例的至少一个引用还在,也就是说你的程序还有可能通过某个引用(作为标识的变量名)访问到那个实例,那么GC是不会把它吃掉的。这就是GC的精髓:如果再没有可能从程序访问到那个实例,那么它就一定是可以被回收的。

解决方案 »

  1.   

    垃圾回收器会自动检查是否回收某对象,只要程序中某处仍保留有对此对象的引用,它自然就不会被回收。除非你让虚拟机觉得程序再往后执行时也用不会再用到它。曾看到过core java 还是thinking in java 上有写过相关的内容
    不记得了呵呵等高手来顶吧,应该有更低层的和垃圾收集器联系紧密的方法可以调用的但没有绝对保证生效的方法。
      

  2.   

    楼上,如果不是你口误、说法错了,就是你概念有问题。看这个:
    http://expert.csdn.net/Expert/topic/2868/2868335.xml?temp=.5918085
      

  3.   

    我知道是怎么回收的,可是我要的是不让回收?
    现在我用的办法是:
    在Web系统启动时就生在这个例的实例,然后把它用getServletContext().setAttribute("myClass",myClass");
    我想如果系统不关闭应该是不会被回收的,不知道大家以为如何?
      

  4.   

    回复人: noia(风之彩) ( ) 信誉:96  2004-04-24 23:35:00  得分:0 
     
     
      我知道是怎么回收的,可是我要的是不让回收?
    现在我用的办法是:
    在Web系统启动时就生在这个例的实例,然后把它用getServletContext().setAttribute("myClass",myClass");
    我想如果系统不关闭应该是不会被回收的,不知道大家以为如何?
      
     ========================================
    很多新手都有这些想当然的问题。
      “我知道是怎么回收的,可是我要的是不让回收?”可以用下面这个问题代替:
      “一个对象应该放在哪里才能让程序随时可以访问?”