欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java引用隊(duì)列和虛引用實(shí)例分析

 更新時間:2019年08月01日 09:38:29   作者:cakincqm  
這篇文章主要介紹了Java引用隊(duì)列和虛引用,結(jié)合實(shí)例形式分析了java引用隊(duì)列和虛引用相關(guān)概念、原理與使用方法,需要的朋友可以參考下

本文實(shí)例講述了Java引用隊(duì)列和虛引用。分享給大家供大家參考,具體如下:

一 點(diǎn)睛

引用隊(duì)列由ReferenceQueue類表示,它用于保存被回收后對象的引用。當(dāng)聯(lián)合使用軟引用、弱引用和引用隊(duì)列時,系統(tǒng)在回收被引用的對象之后,將把它所回收對象對應(yīng)的引用添加到關(guān)聯(lián)的引用隊(duì)列中。而虛引用在對象被釋放之前,將把它對應(yīng)的虛引用添加到它關(guān)聯(lián)的引用隊(duì)列中,這使得可以在對象被回收之前采取行動。

虛引用無法獲取它所對應(yīng)的對象。

二 實(shí)戰(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)建一個引用隊(duì)列
   ReferenceQueue rq = new ReferenceQueue();
   // 創(chuàng)建一個虛引用,讓此虛引用引用到"瘋狂Java講義"字符串
   PhantomReference pr = new PhantomReference (str , rq);
   // 切斷str引用和"瘋狂Java講義"字符串之間的引用
   str = null;
   // 取出虛引用所引用的對象,并不能通過虛引用獲取被引用的對象,所以此處輸出null
   System.out.println(pr.get()); //①
   // 強(qiáng)制垃圾回收
   System.gc();
   System.runFinalization();
   // 垃圾回收之后,虛引用將被放入引用隊(duì)列中
   // 取出引用隊(duì)列中最先進(jìn)入隊(duì)列中的引用與pr進(jìn)行比較
   System.out.println(rq.poll() == pr);  //②
  }
}

2 運(yùn)行

null
true

3 說明

使用引用類可以避免在程序執(zhí)行期間將對象留在內(nèi)存中。如果以軟引用、弱引用或虛引用的方法引用對象,垃圾回收器就能夠隨意釋放對象。如果希望盡可能減小程序在其生命周期中所占用的內(nèi)存大小,這些引用類很有好處。

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • springboot中的RestTemplate使用詳解

    springboot中的RestTemplate使用詳解

    這篇文章主要介紹了springboot中的RestTemplate使用詳解,RestTemplate繼承自InterceptingHttpAccessor并且實(shí)現(xiàn)了RestOperations接口,其中RestOperations接口定義了基本的RESTful操作,這些操作在RestTemplate中都得到了實(shí)現(xiàn),需要的朋友可以參考下
    2023-09-09
  • 從基礎(chǔ)學(xué)java--數(shù)組

    從基礎(chǔ)學(xué)java--數(shù)組

    數(shù)組是相同類型數(shù)據(jù)的有序集合數(shù)組描述的是相同類型的若干個數(shù)據(jù),按照一定的先后次序排列組合而成。其中,每一個數(shù)據(jù)稱作一個數(shù)組元素,每個數(shù)組元素可以通過一個下標(biāo)來訪問它們數(shù)組的聲明創(chuàng)建
    2021-09-09
  • tomcat啟動完成執(zhí)行 某個方法 定時任務(wù)(Spring)操作

    tomcat啟動完成執(zhí)行 某個方法 定時任務(wù)(Spring)操作

    這篇文章主要介紹了tomcat啟動完成執(zhí)行 某個方法 定時任務(wù)(Spring)操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Java中的IO流原理和流的分類詳解

    Java中的IO流原理和流的分類詳解

    這篇文章主要介紹了Java中的IO流原理和流的分類詳解,Java?io流是Java編程語言中用于輸入和輸出操作的一種機(jī)制。它提供了一組類和接口,用于處理不同類型的數(shù)據(jù)流,包括文件、網(wǎng)絡(luò)連接、內(nèi)存等,需要的朋友可以參考下
    2023-10-10
  • Eclipse不自動編譯java文件的終極解決方法

    Eclipse不自動編譯java文件的終極解決方法

    這篇文章主要介紹了Eclipse不自動編譯java文件的終極解決方法,需要的朋友可以參考下
    2015-12-12
  • 從?JVM?中深入探究?Synchronized作用及原理

    從?JVM?中深入探究?Synchronized作用及原理

    這篇文章主要為大家介紹了從?JVM?中深入探究?Synchronized作用及原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • Java HashMap實(shí)現(xiàn)原理分析(一)

    Java HashMap實(shí)現(xiàn)原理分析(一)

    這篇文章主要介紹了Java HashMap實(shí)現(xiàn)原理的分析,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-08-08
  • 劍指Offer之Java算法習(xí)題精講二叉樹專題篇下

    劍指Offer之Java算法習(xí)題精講二叉樹專題篇下

    跟著思路走,之后從簡單題入手,反復(fù)去看,做過之后可能會忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會發(fā)現(xiàn)質(zhì)的變化
    2022-03-03
  • SpringBoot2整合Redis緩存三步驟代碼詳解

    SpringBoot2整合Redis緩存三步驟代碼詳解

    這篇文章主要介紹了SpringBoot2整合Redis緩存三步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Spring Boot項(xiàng)目中定制PropertyEditors方法

    Spring Boot項(xiàng)目中定制PropertyEditors方法

    在本篇文章里小編給大家分享的是一篇關(guān)于Spring Boot定制PropertyEditors的知識點(diǎn)內(nèi)容,有需要的朋友們可以參考學(xué)習(xí)下。
    2019-11-11

最新評論