本篇文章給大家分享的是有關Java 中有哪些引用類型,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
Java 中的引用類型:強引用、軟引用、弱引用和虛引用
強引用
如 Object object = new Object(),那 object 就是一個強引用,如果一個對象具有強引用,垃圾回收器就永遠不會回收它。
軟引用
軟引用用來描述一些還有用但非必需的對象。在內存即將發生內存溢出之前,會把這些對象列進回收范圍之中進行二次垃圾回收。如果這次回收還沒有足夠內存,才會發生內存溢出現象。
另:軟引用可用來實現內存敏感的高速緩存。
弱引用
用來描述非必需的對象。被弱引用關聯的對象只能存活到下一次垃圾收集發生之前。當垃圾回收時,無論當前內存是否足夠,都將回收被弱引用關聯的對象。
虛引用
最弱的一種引用關系。無法通過一個虛引用獲得一個對象實例;一個對象是否有虛引用,都不會對其生存周期構成影響。
設置虛引用的唯一目的是在垃圾回收時收到一個系統通知。
虛引用與軟引用、弱引用的一個區別在于:虛引用必須和引用隊列(ReferenceQueue)聯合使用。當垃圾回收器準備回收一個對象時,如果發現它還有虛引用,會在垃圾回收之前,將該引用加入到與之對應關聯的引用隊列中。程序通過判斷引用隊列中是否已經加入了該虛引用,來了解被引用的對象是否將被垃圾回收。程序如果已經發現該虛引用被加入了引用隊列中,就會將所引用的對象的內存被回收之前采取必要的行動。
軟引用、弱引用的使用場景原理分析:實現內存敏感的高速緩存。
以上就是Java 中有哪些引用類型,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。