這篇文章主要講解了“Java的引用隊列和虛引用實例分析”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java的引用隊列和虛引用實例分析”吧!
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設,靈壽企業(yè)網(wǎng)站建設,靈壽品牌網(wǎng)站建設,網(wǎng)站定制,靈壽網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,靈壽網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。一 點睛
引用隊列由ReferenceQueue類表示,它用于保存被回收后對象的引用。當聯(lián)合使用軟引用、弱引用和引用隊列時,系統(tǒng)在回收被引用的對象之后,將把它所回收對象對應的引用添加到關聯(lián)的引用隊列中。而虛引用在對象被釋放之前,將把它對應的虛引用添加到它關聯(lián)的引用隊列中,這使得可以在對象被回收之前采取行動。
虛引用無法獲取它所對應的對象。
二 實戰(zhàn)
1 代碼
import java.lang.ref.*;public class PhantomReferenceTest{ public static void main(String[] args) throws Exception { // 創(chuàng)建一個字符串對象 String str = new String("瘋狂Java講義"); // 創(chuàng)建一個引用隊列 ReferenceQueue rq = new ReferenceQueue(); // 創(chuàng)建一個虛引用,讓此虛引用引用到"瘋狂Java講義"字符串 PhantomReference pr = new PhantomReference (str , rq); // 切斷str引用和"瘋狂Java講義"字符串之間的引用 str = null; // 取出虛引用所引用的對象,并不能通過虛引用獲取被引用的對象,所以此處輸出null System.out.println(pr.get()); //① // 強制垃圾回收 System.gc(); System.runFinalization(); // 垃圾回收之后,虛引用將被放入引用隊列中 // 取出引用隊列中先進入隊列中的引用與pr進行比較 System.out.println(rq.poll() == pr); //② }}
2 運行
nulltrue
3 說明
使用引用類可以避免在程序執(zhí)行期間將對象留在內(nèi)存中。如果以軟引用、弱引用或虛引用的方法引用對象,垃圾回收器就能夠隨意釋放對象。如果希望盡可能減小程序在其生命周期中所占用的內(nèi)存大小,這些引用類很有好處。
感謝各位的閱讀,以上就是“Java的引用隊列和虛引用實例分析”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對Java的引用隊列和虛引用實例分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián)網(wǎng)站建設公司,,小編將為大家推送更多相關知識點的文章,歡迎關注!
本文題目:Java的引用隊列和虛引用實例分析-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://www.rwnh.cn/article30/dcppso.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設計公司、網(wǎng)站設計、移動網(wǎng)站建設、服務器托管、全網(wǎng)營銷推廣、虛擬主機
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容