原创 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