????3?????????????????????й????????ж??????????finalize()??????????????????????????????????????????????????????ò????????????????????????????????????????????

???????????????????????£?

????2??Java??????4??????

????1???????????????????????????????????????????eg??Person person = new Person(“sunny”); ?????????????????????????????????????????????????????

????2????????????SoftReference??????eg : SoftReference<Person> p = new SoftReference<Person>(new Person(“Rain”));????????????????????????????????????????????????ж?????null????ж??????????????????

????3????????????WeakReference??????eg : WeakReference<Person> p = new WeakReference<Person>(new Person(“Rain”));??????????????????????????????????

????4???????????????????????????????????????????????????PhantomReference??????????ReferenceQueue?????????????eg??
package test; 
   
 import java.lang.ref.PhantomReference; 
 import java.lang.ref.ReferenceQueue; 
   
   
 public class Test{ 
   
     public static void main(String[] args) { 
         //??????????? 
         Person person = new Person("Sunny");     
         //??????????????     
         ReferenceQueue<Person> rq = new ReferenceQueue<Person>(); 
         //????????????????????????????person???? 
         PhantomReference<Person> pr = new PhantomReference<Person>(person?? rq); 
         //?ж?person????????????????? 
         person = null; 
         //?????????????????????? 
         //???????????????????÷?????????????????????null 
         System.out.println(pr.get()); 
         //??????????? 
         System.gc(); 
         System.runFinalization(); 
         //?????????????е?????????????????????????????? 
         //???????????????????????????pr???б??????true 
         System.out.println(rq.poll() == pr); 
     } 
 }

???????н????