原创 jdk源碼解析八之序列化

package org.example.io; import java.io.Serializable; //類通過實現 java.io.Serializable 接口以啓用其序列化功能。 public class Perso

原创 jdk源碼解析七之ReadWriteLock

文章目錄ReadWriteLockReentrantReadWriteLock構造獲取讀寫鎖讀鎖lockunlock寫鎖lockunlock鎖降級總結 ReadWriteLock 分別維護2個鎖,寫鎖是獨佔鎖,讀鎖是共享鎖,因爲

原创 jdk源碼解析四之CountDownLatch

文章目錄CountDownLatchawaitcountDowncancelAcquire總結 CountDownLatch 可用於實現閉鎖操作, 延遲線程的進度直到其到達終止狀態。確保某些活動直到其它活動都完成後才繼續運行,只開

原创 jdk源碼解析三之LinkedBlockingQueue

文章目錄LinkedBlockingQueueputoffer阻塞時間的offertakepollpeekremove迭代器總結 LinkedBlockingQueue 一個基於鏈表的阻塞隊列。此隊列按 FIFO(先進先出)排序元

原创 spring5.1.x源碼解析之一(new XmlBeanFactory())

/* 這裏分別使用 裝飾者模式:使用EncodedResource包裝Resource,對編碼進行處理 策略模式:Resource針對不同的資源實現了,實現了不同的策略 */ @Override public

原创 jdk源碼解析八之AIO

喫飯去咯

原创 jdk源碼解析四之Semaphore

文章目錄Semaphoreacquirerelease總結 Semaphore 計數信號量:控制同時訪問某個特定資源的操作數量,或者同時執行某個指定操作的數量,實現某種資源池,對容器施加邊界 acquire 步驟同CountDow

原创 jdk源碼解析四之CyclicBarrier

文章目錄CyclicBarrierawaitreset CyclicBarrier 阻塞一組線程直到某件事發生,可重複使用,另一種柵欄式。5個人約好集合後去其他地方。 public CyclicBarrier(int pa

原创 spring5.1.x源碼解析之七(spring-mybatis)

文章目錄spring整合mybatis查看SqlSessionFactoryBean初始化前做了啥MapperFactoryBean的加載使用自動掃描生成mapper代理注入sqlSessionFactory mybatis小de

原创 jdk源碼解析五之Thread

這裏寫自定義目錄標題Thread構造startinterruptjoinStaterun總結ThreadFactoryDefaultThreadFactory Thread 構造 private void init(Threa

原创 jdk源碼解析三之ThreadLocal

文章目錄ThreadLocalset初始化ThreadLocalMapset賦值重新使用失效節點清空無效節點擴容getremove總結爲何存在內存泄漏問題? ThreadLocal set public void set

原创 spring5.1.x源碼解析之五(AOP)

文章目錄 編寫bean @AllArgsConstructor @Data @NoArgsConstructor public class MyBeanTest implements InitializingBean, Dispo

原创 jdk源碼解析二之HashMap

這裏寫自定義目錄標題HashMapputremovereplaceget擴容resize迭代器總結什麼時候採用紅黑樹?爲什麼每次擴容後,是2的冪次方?爲什麼擴容後,相同的在原位置保存,而不同的則當前索引+之前原位置索引保存?爲啥用

原创 tomcat源碼解析一之設計模式

沒有標題組合責任鏈觀察者總結跟spring對比 組合 service將連接器和容器組合在一塊對外提供服務, 在外層,catalina將Digester和server組合在一塊,解析xml屬性然後直接賦值給server.這樣整個容

原创 jdk源碼解析三之ConcurrentHashMap

文章目錄ConcurrentHashMapput初始化擴容getaddCountreplace#remove總結:什麼時候擴容?JDK1.8放棄分段鎖jdk1.8的map實現爲什麼不用ReentrantLock而用synchron