以下針對JDK 1.8版本中的HashMap進行分析。 概述 哈希表基於Map接口的實現。此實現提供了所有可選的映射操作,並且允許鍵為null,值也為null。HashMap 除了不支持同 ...
String深入解析 String具有不變性的原因: String被final修飾,它不可能被繼承,也就是任何對String的操作方法,都不會被繼承覆寫 String中保存數據的是一個char數組的value,它被final修飾,它的內存地址一旦賦值無法修改 String相等判斷源碼 判斷類型是否相同 判斷長度是否相同 比較每一個字符是否相等 當上述 個條件均成立時,兩個String相等 Stri ...
2019-10-24 21:09 0 663 推薦指數:
以下針對JDK 1.8版本中的HashMap進行分析。 概述 哈希表基於Map接口的實現。此實現提供了所有可選的映射操作,並且允許鍵為null,值也為null。HashMap 除了不支持同 ...
以下針對JDK 1.8版本中的ArrayList進行分析。 概述 ArrayList基於List接口實現的大小可變的數組。其實現了所有可選的List操作,並且元素允許為任意類型,包括nul ...
Java 中的 ThreadLocal是線程內的局部變量, 它為每個線程保存變量的一個副本。ThreadLocal 對象可以在多個線程中共享, 但每個線程只能讀寫其中自己的副本。 目錄: 代碼示例 源碼解析 InheritableThreadLocal ...
1 反射 1.1 什么是反射 正射:指的是我們知道類的定義和類中的方法名稱,直接先創建對象,然后通過對象去調用方法。例如: Apple apple = ne ...
List是java重要的數據結構之一,我們經常接觸到的有ArrayList、Vector和LinkedList三種,他們都繼承來自java.util.Collection接口,類圖如下 接下來,我們對比下這三種List的實現和不同: 一、基本實現 1、ArrayList ...
在上一章,我們學習了信號量(Semaphore)是如何請求許可證的,下面我們來看看要如何歸還許可證。 可以看到當我們要歸還許可證時,不論是調用release()或是release(int permi ...
先前,筆者和大家一起了解了ReentrantReadWriteLock的寫鎖實現,其實寫鎖本身實現的邏輯很少,基本上還是復用AQS內部的等待隊列思想。下面,我們來看看ReentrantReadWrit ...
ReentrantLock和BlockingQueue 首先,看到這個標題,不要懷疑自己進錯文章,也不要懷疑筆者寫錯,哈哈。本章筆者會從BlockingQueue(阻塞隊列)的角度,看看juc包下的阻塞隊列是如何使用ReentrantLock。這個章節筆者會介紹部分阻塞隊列的源碼,但不會着墨過多 ...