參考強度:強參考 > 軟參考 > 弱參考 > 虛參考 強度依次逐漸減弱
1. 強參考
強參考就是指在程式代碼之中普遍存在的,類似“Object obj = new Object()”這類的參考,只要強參考還存在,垃圾收集器永遠不會回收掉被參考的物件,
2. 軟參考
軟參考是用來描述一些還有用但并非必需的物件,對于軟參考關聯著的物件,在系統將要發生記憶體溢位例外之前,將會把這些物件列進回收范圍之中進行第二次回收,如果這次回識訓沒有足夠的記憶體,才會拋出記憶體溢位例外,在JDK 1.2之后,提供了SoftReference類來實作軟參考,
3. 弱參考
弱參考也是用來描述非必需物件的,但是它的強度比軟參考更弱一些,被弱參考關聯的物件只能生存到下一次垃圾收集發生之前,當垃圾收集器作業時,無論當前記憶體是否足夠,都會回收掉只被弱參考關聯的物件,在JDK 1.2之后,提供了WeakReference類來實作弱參考,
4. 虛參考
虛參考也稱為幽靈參考或者幻影參考,它是最弱的一種參考關系,一個物件是否有虛參考的存在,完全不會對其生存時間構成影響,也無法通過虛參考來取得一個物件實體,為一個物件設定虛參考關聯的唯一目的就是能在這個物件被收集器回收時收到一個系統通知,在JDK 1.2之后,提供了PhantomReference類來實作虛參考,
-- 參考資料:
《深入理解Java虛擬機--JVM高級特性與最佳實踐 第2版》 --周志明 著
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/125376.html
標籤:Java
上一篇:java_Object類、日期時間類、System類、包裝類
下一篇:OOM記憶體溢位場景及分析
