最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中的WeakHashMap概念原理以及簡(jiǎn)單案例

 更新時(shí)間:2023年09月07日 08:32:43   作者:阿黃Ahuang  
這篇文章主要介紹了Java中的WeakHashMap概念原理以及簡(jiǎn)單案例,WeakHashMap使用了軟引用結(jié)構(gòu),它的對(duì)象在垃圾回收時(shí)會(huì)被刪除,垃圾回收是優(yōu)先級(jí)非常低的線程,不能被顯示調(diào)用,當(dāng)內(nèi)存不足的時(shí)候會(huì)啟用,需要的朋友可以參考下

WeakHashMap 概念和原理說(shuō)明

WeakHashMap使用了軟引用結(jié)構(gòu),它的對(duì)象在垃圾回收時(shí)會(huì)被刪除

注:垃圾回收是優(yōu)先級(jí)非常低的線程,不能被顯示調(diào)用,當(dāng)內(nèi)存不足的時(shí)候會(huì)啟用

下面是 WeakHashMap 的實(shí)現(xiàn)原理拆分:

public class WeakHashMap<K,V> extends AbstractMap<K,V> implements Map<K,V> {
    ... ...
    // 用于存儲(chǔ)需要清理的引用對(duì)象
    private final ReferenceQueue<Object> queue = new ReferenceQueue<>();
    ... ...
    // 內(nèi)部Entry繼承自WeakReference,從而有弱引用特性
    private static class Entry<K,V> extends WeakReference<Object> implements Map.Entry<K,V> {
        ... ...
    }
    ... ...
    // 用于移除內(nèi)部不用的Entry來(lái)釋放內(nèi)存
    private void expungeStaleEntries() { ... ... }
    ... ...
}

WeakHashMap 原理說(shuō)明

1.每次GC清理對(duì)象后,引用對(duì)象被放置到 ReferenceQueue 之中

2.每次訪問(wèn) WeakHashMap 都會(huì)調(diào)用 expungeStaleEntries 遍歷刪除 ReferenceQueue 中引用對(duì)象

使用案例

1、緩存中使用

由于 WeakHashMap 是弱引用,因此適合在緩存中使用,當(dāng)內(nèi)存不足GC的時(shí)候,會(huì)清理不用的引用達(dá)到釋放內(nèi)存的目的

image

2、不要使用基礎(chǔ)類型作為WeakHashMap的key

我大概理解的是,基礎(chǔ)類型的一定范圍不會(huì)被回收 原文:objectMap.put方法執(zhí)行的時(shí)候i會(huì)被封裝為Integer類型的,Integer保留了-128到127的緩存。

但是對(duì)于int來(lái)說(shuō)范圍大很多,因此那些Key <= 127的Entry將不會(huì)進(jìn)行自動(dòng)回收,但是那些大于127的將會(huì)被回收,因此最后的尺寸總是會(huì)穩(wěn)定在128左右

image

到此這篇關(guān)于Java中的WeakHashMap概念原理以及簡(jiǎn)單案例的文章就介紹到這了,更多相關(guān)Java中的WeakHashMap內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Mybatis-plus(MP)中CRUD操作保姆級(jí)筆記

    詳解Mybatis-plus(MP)中CRUD操作保姆級(jí)筆記

    本文主要介紹了Mybatis-plus(MP)中CRUD操作保姆級(jí)筆記,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 如何根據(jù)帶賬號(hào)密碼的WSDL地址生成JAVA代碼

    如何根據(jù)帶賬號(hào)密碼的WSDL地址生成JAVA代碼

    這篇文章主要介紹了如何根據(jù)帶賬號(hào)密碼的WSDL地址生成JAVA代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 淺析Java設(shè)計(jì)模式編程中的單例模式和簡(jiǎn)單工廠模式

    淺析Java設(shè)計(jì)模式編程中的單例模式和簡(jiǎn)單工廠模式

    這篇文章主要介紹了淺析Java設(shè)計(jì)模式編程中的單例模式和簡(jiǎn)單工廠模式,使用設(shè)計(jì)模式編寫代碼有利于團(tuán)隊(duì)協(xié)作時(shí)程序的維護(hù),需要的朋友可以參考下
    2016-01-01
  • Java對(duì)象的內(nèi)存布局全流程

    Java對(duì)象的內(nèi)存布局全流程

    這篇文章主要介紹了Java對(duì)象的內(nèi)存布局全流程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Java嵌套for循環(huán)優(yōu)化方案分享

    Java嵌套for循環(huán)優(yōu)化方案分享

    介紹了Java中嵌套for循環(huán)的優(yōu)化方法,包括減少循環(huán)次數(shù)、合并循環(huán)、使用更高效的數(shù)據(jù)結(jié)構(gòu)、并行處理、預(yù)處理和緩存、算法優(yōu)化、盡量減少對(duì)象創(chuàng)建以及本地變量?jī)?yōu)化,通過(guò)這些方法,可以顯著提升程序的執(zhí)行效率,文章還以動(dòng)態(tài)規(guī)劃優(yōu)化示例——最長(zhǎng)遞增子序列
    2025-03-03
  • Post請(qǐng)求參數(shù)是數(shù)組或者List時(shí)的請(qǐng)求處理方式

    Post請(qǐng)求參數(shù)是數(shù)組或者List時(shí)的請(qǐng)求處理方式

    這篇文章主要介紹了Post請(qǐng)求參數(shù)是數(shù)組或者List時(shí)的請(qǐng)求處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java實(shí)現(xiàn)DFA算法對(duì)敏感詞、廣告詞過(guò)濾功能示例

    Java實(shí)現(xiàn)DFA算法對(duì)敏感詞、廣告詞過(guò)濾功能示例

    本篇文章主要介紹了Java實(shí)現(xiàn)DFA算法對(duì)敏感詞、廣告詞過(guò)濾功能示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Spring MVC 擴(kuò)展和 SSM 框架整合步驟詳解

    Spring MVC 擴(kuò)展和 SSM 框架整合步驟詳解

    在前端頁(yè)面后后臺(tái)交互的過(guò)程中,需要一種格式清晰、高效且兩端都可以輕松使用的數(shù)據(jù)格式做交互的媒介,JSON正可以滿足這一需求,下面學(xué)習(xí)使用Spring MVC 框架處理JSON數(shù)據(jù),感興趣的朋友一起看看吧
    2024-08-08
  • 淺談一下Java中的幾種JVM級(jí)別的鎖

    淺談一下Java中的幾種JVM級(jí)別的鎖

    這篇文章主要介紹了淺談一下Java中的幾種JVM級(jí)別的鎖,當(dāng)存在安全漏洞時(shí),也必須有相應(yīng)的防護(hù)措施。順應(yīng)這種趨勢(shì),虛擬"鎖"被發(fā)明出來(lái),以解決線程的安全問(wèn)題。在這篇文章中,我們將研究多年來(lái)出現(xiàn)的?Java?中幾種典型的?JVM?級(jí)鎖,需要的朋友可以參考下
    2023-08-08
  • Spring排序機(jī)制之接口與注解的使用方法

    Spring排序機(jī)制之接口與注解的使用方法

    本文介紹了Spring中多種排序機(jī)制,包括Ordered接口、PriorityOrdered接口、@Order注解和@Priority注解,提供了詳細(xì)示例,并指導(dǎo)如何選擇合適的排序機(jī)制來(lái)控制Bean的加載順序和優(yōu)先級(jí),感興趣的朋友一起看看吧
    2025-02-02

最新評(píng)論

手游| 万山特区| 彭泽县| 许昌市| 贵德县| 开平市| 长顺县| 珲春市| 海伦市| 三亚市| 惠安县| 化隆| 榆社县| 浮梁县| 林周县| 泽普县| 滦平县| 成武县| 宜黄县| 灵宝市| 句容市| 巨鹿县| 宣化县| 江达县| 会理县| 上饶市| 武强县| 安龙县| 山阴县| 惠东县| 元氏县| 石狮市| 蓝田县| 新河县| 纳雍县| 台南县| 库伦旗| 讷河市| 华宁县| 华亭县| 辽源市|