请教一个释放内存的问题
小弟在学习Thinking   in   java时,看到如下一个例子:   
 //:   c14:Interrupt.java 
 //   From    'Thinking   in   Java,   2nd   ed. '   by   Bruce   Eckel 
 //   www.BruceEckel.com.   See   copyright   notice   in   CopyRight.txt. 
 //   The   alternative   approach   to   using    
 //   stop()   when   a   thread   is   blocked. 
 //    <applet   code=Interrupt   width=200   height=100>  
 //    </applet>  
 import   javax.swing.*; 
 import   java.awt.*; 
 import   java.awt.event.*; 
 import   com.bruceeckel.swing.*;   
 class   Blocked   extends   Thread   { 
       public   synchronized   void   run()   { 
             try   { 
                   wait();   //   Blocks 
             }   catch(InterruptedException   e)   {                    
System.err.println( "Interrupted "); 
             } 
             System.out.println( "Exiting   run() "); 
       } 
 }   
 public   class   Interrupt   extends   JApplet   { 
       private   JButton    
             interrupt   =   new   JButton( "Interrupt "); 
       private   Blocked   blocked   =   new   Blocked(); 
       public   void   init()   { 
             Container   cp   =   getContentPane(); 
             cp.setLayout(new   FlowLayout()); 
             cp.add(interrupt); 
             interrupt.addActionListener( 
                   new   ActionListener()   { 
                         public    
                         void   actionPerformed(ActionEvent   e)   { 
                               System.out.println( "Button   pressed "); 
                               if(blocked   ==   null)   return; 
                               /**   不明白的地方开始   */ 
                               Thread   remove   =   blocked; 
                               blocked   =   null;   //   to   release   it 
                               remove.interrupt(); 
                               /**   不明白的地方结束   */ 
                         } 
                   }); 
             blocked.start(); 
       } 
       public   static   void   main(String[]   args)   { 
             Console.run(new   Interrupt(),   200,   100); 
       } 
 }   ///:~     
 小弟这个地方不太明白,remove指向block原来的那块内存区域后,那块内存也不会得到释放啊~和直接调用方法 
 block.interrupt(); 
 有什么区别呢?请高人指点!多谢
------解决方案--------------------if(blocked == null) return;有这句话,使  blocked = null;就是为了防止按钮被多次点击。remove.interrupt(); block.interrupt(); 没区别。