摘要:本文簡介類概覽類構(gòu)造器總結(jié)類構(gòu)造方法類使用舉例類概覽是一個(gè)實(shí)現(xiàn)了接口,并且鍵為型的哈希表。中的條目不再被正常使用時(shí),會(huì)被自動(dòng)刪除。它的鍵值均支持。和絕大多數(shù)的集合類一樣,這個(gè)類不是同步的。
本文簡介
WeakHashMap類概覽
WeakHashMap類構(gòu)造器總結(jié)
WeakHashMap類構(gòu)造方法
WeakHasjMap類使用舉例
1. WeakHashMap類概覽WeakHashMap是一個(gè)實(shí)現(xiàn)了Map接口,并且鍵為weak型的哈希表。WeakHashMap中的條目不再被正常使用時(shí),會(huì)被自動(dòng)刪除。它的鍵值均支持null。這個(gè)類類似于HashMap類,也具有初始容量和負(fù)載因子這樣的效率參數(shù)。和絕大多數(shù)的集合類一樣,這個(gè)類不是同步的。需要使用Collections.synchronizedMap方法來進(jìn)行同步控制。弱引用--如果一個(gè)對(duì)象只有一個(gè)弱引用,那么垃圾回收期可以隨時(shí)收回該對(duì)象的內(nèi)存。它不需要等到系統(tǒng)內(nèi)存不足時(shí)才回收。通常,它的內(nèi)存會(huì)在下一次垃圾收集器運(yùn)行時(shí)釋放。
2. WeakHashMap的構(gòu)造器WeakHashMap(): 構(gòu)造一個(gè)新的,空的WeakHashMap,初始容量為16,負(fù)載因子為0.75
WeakHashMap(int initialCapacity): 構(gòu)造一個(gè)新的,空的WeakHashMap, 初始容量為initialCapacity,負(fù)載因子為0.75
WeakHashMap(int initialCapacity, float loadFactor): 構(gòu)造一個(gè)新的,空的WeakHashMap, 初始容量為initialCapacity,負(fù)載因子為loadFactor
WeakHashMap(Map extends K, ? extends V> m): 利用已有的map構(gòu)造WeakHashMap
3. WeakHashMap類的方法void clear(): 刪除所有的條目
boolean containsKey(Object key): 如果有該鍵,返回true
boolean containsValue(Object value): 如果有一個(gè)或多個(gè)value值,返回true
Set< Map.Entry
void forEach(BiConsumer super K,? super V> action): 對(duì)此映射中的每個(gè)條目執(zhí)行給定操作,直到處理完所有條目或操作引發(fā)異常。
V get(Object key): 返回指定鍵映射到的值,如果此映射不包含鍵的映射,則返回null。
boolean isEmpty(): 如果此映射不包含鍵 - 值映射,則返回true。
4. WeakHashMap類使用示例import java.util.Map; import java.util.Map.Entry; import java.util.WeakHashMap; public class WeakHashMapExample { public static void main(final String[] args) { final Mapmap = new WeakHashMap<>(); Key key1 = new Key("ACTIVE"); final Key key2 = new Key("INACTIVE"); map.put(key1, new Project(100, "Customer Management System", "Customer Management System")); map.put(key2, new Project(200, "Employee Management System", "Employee Management System")); key1 = null; System.gc(); for (final Entry entry : map.entrySet()) { System.out.println(entry.getKey().getKey() + " " + entry.getValue()); } } } class Key { private String key; public Key(final String key) { super(); this.key = key; } public String getKey() { return key; } public void setKey(final String key) { this.key = key; } }
輸出:
INACTIVE [project id : 200, project name : Employee Management System, project desc : Employee Management System ]
想要了解更多開發(fā)技術(shù),面試教程以及互聯(lián)網(wǎng)公司內(nèi)推,歡迎關(guān)注我的微信公眾號(hào)!將會(huì)不定期的發(fā)放福利哦~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/72620.html
摘要:什么是為執(zhí)行字節(jié)碼提供一個(gè)運(yùn)行環(huán)境。它的實(shí)現(xiàn)主要包含三個(gè)部分,描述實(shí)現(xiàn)規(guī)格的文檔,具體實(shí)現(xiàn)和滿足要求的計(jì)算機(jī)程序以及實(shí)例具體執(zhí)行字節(jié)碼。該類先被轉(zhuǎn)化為一組字節(jié)碼并放入文件中。字節(jié)碼校驗(yàn)器通過字節(jié)碼校驗(yàn)器檢查格式并找出非法代碼。 什么是Java Development Kit (JDK)? JDK通常用來開發(fā)Java應(yīng)用和插件。基本上可以認(rèn)為是一個(gè)軟件開發(fā)環(huán)境。JDK包含Java Run...
摘要:否則它就會(huì)用新的值替代當(dāng)前值。在這種情況下,鎖可能會(huì)優(yōu)于原子變量,但在實(shí)際的爭用級(jí)別中,原子變量的性能優(yōu)于鎖。在中引入了另外一個(gè)構(gòu)件。 題目要求 在我們深入了解CAS(Compare And Swap)策略以及它是如何在AtomicInteger這樣的原子構(gòu)造器中使用的,首先來看一下這段代碼: public class MyApp { private volatile int ...
摘要:在此基礎(chǔ)上又向前邁進(jìn)了一步局部變量類型推斷允許開發(fā)人員跳過局部變量的類型聲明局部變量是指在方法定義,初始化塊,循環(huán)和其它的如代碼塊,會(huì)推斷該局部變量的類型。 前言 之前面試的時(shí)候問了我是否了解JDK10的變化,一時(shí)回答不出來,所以只回答了JDK8中的函數(shù)式編程和流編程。今天看到這篇講JAVA10的文章,順便了解一下。 正文 JAVA10的所有新特性請(qǐng)參考這里。在所有的JEP中,JEP-...
摘要:我們將使用單個(gè)線程管理任務(wù)放入隊(duì)列的操作以及從隊(duì)列中取出的操作。同時(shí)這個(gè)線程會(huì)持續(xù)的管理隊(duì)列。另一個(gè)線程將用來創(chuàng)建,它將一直運(yùn)行知道服務(wù)器終止。此線程永遠(yuǎn)不會(huì)過期,有助于實(shí)現(xiàn)持續(xù)監(jiān)控。這些請(qǐng)求將會(huì)自動(dòng)的被獲取,并在線程中繼續(xù)處理。 在Java中,BlockingQueue接口位于java.util.concurrent包下。阻塞隊(duì)列主要用來線程安全的實(shí)現(xiàn)生產(chǎn)者-消費(fèi)者模型。他們可以使用...
摘要:這個(gè)例子想要說明兩個(gè)事情中以為結(jié)尾的方法將會(huì)異步執(zhí)行默認(rèn)情況下即指沒有傳入的情況下,異步執(zhí)行會(huì)使用實(shí)現(xiàn),該線程池使用一個(gè)后臺(tái)線程來執(zhí)行任務(wù)。這個(gè)例子展示了如何使用一個(gè)固定大小的線程池來實(shí)現(xiàn)大寫操作。 前言 這篇博客回顧JAVA8的CompletionStageAPI以及其在JAVA庫中的標(biāo)準(zhǔn)實(shí)現(xiàn)CompletableFuture。將會(huì)通過幾個(gè)例子來展示API的各種行為。 因?yàn)镃ompl...
閱讀 3820·2021-10-12 10:12
閱讀 1453·2021-10-11 10:58
閱讀 2290·2021-10-09 10:01
閱讀 2597·2021-09-24 09:48
閱讀 2699·2021-09-09 11:38
閱讀 3526·2019-08-30 15:44
閱讀 1724·2019-08-30 14:22
閱讀 518·2019-08-29 12:42