JDK源碼分析初步整理

1. 囉嗦一下

不知不覺一年又到了尾聲,從年初開始寫 「JDK 源碼分析」這個系列,而今已經過了大半年,文章也寫了幾十篇,雖說不多但也不算太少(好像還是有點少????),爲便於查看,這裏簡單做個彙總和分類。

2. JDK 源碼系列初步彙總

2.1 常用集合類

List、Map 等集合類,在平時的開發工作中使用的頻率相當高,因此源碼分析也是先從這裏開始的,主要包括以下部分:

JDK源碼分析-Collection

JDK源碼分析-List, Iterator, ListIterator

JDK源碼分析-ArrayList

JDK源碼分析-Vector

JDK源碼-Queue, Deque

JDK源碼分析-LinkedList

JDK源碼分析-Map

JDK源碼分析-TreeMap(1)

JDK源碼分析-TreeMap(2)

JDK源碼分析-HashMap(1)

JDK源碼分析-HashMap(2)

JDK源碼分析-Hashtable

JDK源碼分析-LinkedHashMap

JDK源碼分析-PriorityQueue

PS: 這裏沒有分析 HashSet、TreeSet 等,因爲它們是基於對應 Map 實現的,所以略過。

2.2 AQS&鎖

JDK 1.5 開始,併發包 java.util.concurrent 下增加了不少併發操作相關的類,這裏暫且分析了其中一部分:

JDK源碼分析-Lock&Condition

JDK源碼分析-AbstractQueuedSynchronizer(1)

JDK源碼分析-AbstractQueuedSynchronizer(2)

JDK源碼分析-AbstractQueuedSynchronizer(3)

JDK源碼分析-ReentrantLock

JDK源碼分析-ReentrantReadWriteLock

JDK源碼分析-CountDownLatch

JDK源碼分析-CyclicBarrier

JDK源碼分析-Semaphore

2.3 阻塞隊列&線程池

線程池和阻塞隊列也是併發中的一個核心點,一些常用類(接口)如下:

JDK源碼分析-BlockingQueue

JDK源碼分析-ArrayBlockingQueue

JDK源碼分析-LinkedBlockingQueue

JDK源碼分析-PriorityBlockingQueue

JDK源碼分析-ThreadPoolExecutor

JDK源碼分析-ScheduledExecutorService

JDK源碼分析-FutureTask

JDK源碼分析-DelayQueue

JDK源碼分析-ScheduledThreadPoolExecutor

此外,還有併發容器類:

JDK源碼分析-CopyOnWriteArrayList

當然,這只是九牛一毛,還有很多常用的類尚未分析到,比如併發容器 ConcurrentHashMap,一些常用的類如 Object、String、StringBuilder、StringBuffer 等等。

此外,以後還計劃分析一些常用的框架源碼(Spring 等),以及其他相關知識(MySQL 等),敬請期待

3. 小感

以前也讀過一部分源碼,但沒怎麼整理和做筆記,有些東西理解的不夠深刻,過段時間就忘了。這大半年讀下來,對之前的認識和理解又加深了不少,以後還會繼續下去。

這裏也簡單分享一點心得(純屬個人愚見,僅供參考):

  1. 耐心

    讀源碼一定要靜下心來、耐得住性子,有些地方可能比較繞,或者比較費解,急躁不得;

  2. 從常用類開始,從接口開始

    常用類看起來比較"臉熟",而且理解了它們的原理能在開發中更高效地使用;

    從接口開始,是由於接口其實相當於類的"實現標準"。因此讀了一個接口的說明和它的方法定義之後,就能瞭解它的實現類的主要功能,而且接口定義一般沒什麼代碼,更容易理解其實現思想,而非直接陷入代碼的細節;

  3. 查閱各種資料

    有時會遇到一些晦澀難懂的地方,也許不少人已經遇到過了,可以從網上各種論壇博客查找答案。官方文檔和源碼的實現說明也是非常好的資料。

還有就是「寫下來」很重要。讀的過程中經常自以爲都懂了,但可能只是錯覺,在組織語言和寫作的過程中也許會發現某些地方理解地並不深刻或者有誤。鄙人以爲,當能夠用很通俗易懂的話讓別人理解,纔算真懂了吧,我也儘量往這個方向努力。

PS: 由於本公號沒有留言功能,因此也不清楚大家讀過此前的文章有怎樣的感受及評價。如果覺得多少有些收穫、沒有白讀,可以在文末右下角點下"在看",也算是一種贊同和鼓勵。

當然,由於本人水平有限,可能有些地方理解有誤,也請大家不吝賜教,可以在後臺私信指正,不勝感激。


發佈了114 篇原創文章 · 獲贊 40 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章