對象的軟弱引用

強引用StrongReference):大部分對象和數組都是採用這種方式,處於可達狀態,不能被系統垃圾回收機制回收

軟引用(SoftReference):可能被垃圾回收機制回收,當系統內存空間足夠時,不會被系統回收,程序也可以使用該對象,當其內存空間不足時,系統可能會回收它,一般用於對內存敏感的程序中。

弱引用(WeakReference),當垃圾回收機制運行時,都會回收該對象所佔的內存,無論內存空間是否充足。

虛引用(PhantomReference):類似於沒有引用,主要用於跟蹤對象,被垃圾回收的狀態,不能單獨使用,虛引用必須和引用隊列聯合使用


import java.lang.ref.WeakReference;

public class Demo {
    public static void main(String[] args) {
        String Str="瘋狂Java講義";
        WeakReference wr= new WeakReference(Str);//創建一個弱引用指向Str
        Str=null;//使其變成可恢復狀態
        System.gc();
        System.runFinalization();//通知系統進行垃圾回收,此處調用可恢復的finalize方法(ft=this)
        System.out.println(wr.get());//
    }
}

系統創建一個弱引用對象wr讓他和Str指向同一個對象當WeakReference wr= new WeakReference(Str);執行時,程序切斷了Str和字符串對象"瘋狂Java講義"的聯繫,

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章