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

淺談Java 中的引用類型

 更新時間:2020年02月10日 08:47:22   作者:Oaki  
Java開發(fā)者肯定都很熟悉java中的4種引用類型,它們從強到弱分別是:強引用、軟引用、弱引用和虛引用,下面我們詳細看看這些引用類型

Java 中的引用類型:強引用、軟引用、弱引用和虛引用

強引用

如 Object object = new Object(),那 object 就是一個強引用,如果一個對象具有強引用,垃圾回收器就永遠不會回收它。

軟引用

軟引用用來描述一些還有用但非必需的對象。在內(nèi)存即將發(fā)生內(nèi)存溢出之前,會把這些對象列進回收范圍之中進行二次垃圾回收。如果這次回收還沒有足夠內(nèi)存,才會發(fā)生內(nèi)存溢出現(xiàn)象。

另:軟引用可用來實現(xiàn)內(nèi)存敏感的高速緩存。

弱引用

用來描述非必需的對象。被弱引用關(guān)聯(lián)的對象只能存活到下一次垃圾收集發(fā)生之前。當垃圾回收時,無論當前內(nèi)存是否足夠,都將回收被弱引用關(guān)聯(lián)的對象。

虛引用

最弱的一種引用關(guān)系。無法通過一個虛引用獲得一個對象實例;一個對象是否有虛引用,都不會對其生存周期構(gòu)成影響。

設(shè)置虛引用的唯一目的是在垃圾回收時收到一個系統(tǒng)通知。

虛引用與軟引用、弱引用的一個區(qū)別在于:虛引用必須和引用隊列(ReferenceQueue)聯(lián)合使用。當垃圾回收器準備回收一個對象時,如果發(fā)現(xiàn)它還有虛引用,會在垃圾回收之前,將該引用加入到與之對應(yīng)關(guān)聯(lián)的引用隊列中。程序通過判斷引用隊列中是否已經(jīng)加入了該虛引用,來了解被引用的對象是否將被垃圾回收。程序如果已經(jīng)發(fā)現(xiàn)該虛引用被加入了引用隊列中,就會將所引用的對象的內(nèi)存被回收之前采取必要的行動。

軟引用、弱引用的使用場景原理分析:實現(xiàn)內(nèi)存敏感的高速緩存。

相關(guān)文章

  • Java深入了解數(shù)據(jù)結(jié)構(gòu)之棧與隊列的詳解

    Java深入了解數(shù)據(jù)結(jié)構(gòu)之棧與隊列的詳解

    這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)中的棧與隊列,在Java的時候,對于棧與隊列的應(yīng)用需要熟練的掌握,這樣才能夠確保Java學習時候能夠有扎實的基礎(chǔ)能力。本文小編就來詳細說說Java中的棧與隊列,需要的朋友可以參考一下
    2022-01-01
  • Java自定義異常簡單示例

    Java自定義異常簡單示例

    使用Java內(nèi)置的異常類可以描述在編程時出現(xiàn)的大部分異常情況,除此之外用戶還可以自定義異常,下面這篇文章主要給大家介紹了關(guān)于Java自定義異常的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • Java異常之圖書管理系統(tǒng)

    Java異常之圖書管理系統(tǒng)

    這篇文章主要為大家詳細介紹了Java異常之圖書管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • Java藍橋杯實現(xiàn)線段和點

    Java藍橋杯實現(xiàn)線段和點

    本文主要介紹Java藍橋杯實現(xiàn)線段和點的內(nèi)容,感興趣的小伙伴可以參考下文
    2021-08-08
  • JVM:你知道為什么對象一定在堆中分配嗎

    JVM:你知道為什么對象一定在堆中分配嗎

    這篇文章主要介紹了jvm對象的創(chuàng)建和分配的相關(guān)資料,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下,希望能夠給你帶來幫助
    2021-08-08
  • idea不能自動補全yml配置文件的原因分析

    idea不能自動補全yml配置文件的原因分析

    這篇文章主要介紹了idea不能自動補全yml配置文件的原因,通過添加yml文件為配置文件能夠很快的解決,具體解決步驟跟隨小編一起通過本文學習下吧
    2021-06-06
  • 詳解JAVA 函數(shù)式編程

    詳解JAVA 函數(shù)式編程

    這篇文章主要介紹了JAVA 函數(shù)式編程的相關(guān)資料,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • MyBatis-Plus中AutoGenerator的使用案例

    MyBatis-Plus中AutoGenerator的使用案例

    AutoGenerator是MyBatis-Plus的代碼生成器,通過?AutoGenerator?可以快速生成?Pojo、Mapper、?Mapper?XML、Service、Controller?等各個模塊的代碼,這篇文章主要介紹了MyBatis-Plus中AutoGenerator的詳細使用案例,需要的朋友可以參考下
    2023-05-05
  • java正則表達式驗證工具類

    java正則表達式驗證工具類

    這篇文章主要介紹了java正則表達式驗證工具類,可以校驗電話號碼,身份證號碼,日期格式,URL,email等等,需要的小伙伴參考下吧。
    2015-03-03
  • SpringBoot 整合 Netty 多端口監(jiān)聽的操作方法

    SpringBoot 整合 Netty 多端口監(jiān)聽的操作方法

    Netty提供異步的、基于事件驅(qū)動的網(wǎng)絡(luò)應(yīng)用程序框架,用以快速開發(fā)高性能、高可靠性的網(wǎng)絡(luò) IO 程序,是目前最流行的 NIO 框架,這篇文章主要介紹了SpringBoot 整和 Netty 并監(jiān)聽多端口,需要的朋友可以參考下
    2023-10-10

最新評論