原创 阿里 sentinel —— cluster 模塊淺析

文章目錄1 sentinel-cluster 模塊的作用2 全侷限流中兩種策略討論2.1 閾值均攤策略2.2 全局閾值策略3 cluster 模式配置3.1 獨立 server 模式1 server 需要監聽如下幾個配置2 cli

原创 Java 線程池框架

文章目錄1 什麼是執行器框架(Executor FrameWork)2 執行器框架的優勢3 執行器框架的結構4 AbstractExecutorService 解析5 ThreadPoolExecutor 解析5.1 線程池狀態、

原创 阿里 sentinel-core 淺析

文章目錄1 什麼是 Sentinel2 Sentinel 核心概念簡介2.1 resource2.2 context2.3 slot2.4 slotChain2.5 slotChainBuilder2.6 Node3 Sentin

原创 AQS 應用 —— 手寫 Semaphore、CountDownLatch

文章目錄1 AQS 簡介2 Semaphore 簡介2.1 Semaphore 設計3 CountDownLatch 簡介3.1 CountDownLatch 設計4 總結 1 AQS 簡介 AQS 爲抽象鎖隊列,它內部引入了一

原创 線程輔助類 —— CyclicBarrier、Phaser、Exchanger 解析

文章目錄1 線程同步輔助類2 CyclicBarrier 解析3 Phaser 解析4 Exchanger 解析參考 1 線程同步輔助類 除了基本的線程同步機制(Synchronized、Lock)外,JDK 還提供了 5種線程

原创 @SpringBootApplication 與 @SpringBootTest 的區別與應用

文章目錄1 @SpringBootApplication 註解的應用2 @SpringBootTest 註解的應用3 @SpringBootApplication 和 @SpringBootTest 的區別4 @Componen

原创 @ConditionOnBean 註解解析 —— BeanDefinition 加載順序

文章目錄1 問題來源2 @ConditionOnBean 註解匹配的時機3 @ConditionOnBean 註解匹配的條件3.1 注意事項4 BeanDefinition 生成的2個階段4.1 刷選出符合條件的 Configur

原创 JUC 原子操作封裝類

文章目錄1 什麼是 JUC 原子操作封裝類2 JUCA 的應用場景3 鎖與 JUCA 的選擇問題4 爲什麼使用 JUCA5 JUCA 源碼分析5.1 原子操作類總綱5.2 Atomic 類5.3 AtomicArray 類5.4

原创 AQS、ReentrantLock、ReentrantReadWriteLock 結構與源碼分析

文章目錄1 Lock 接口分析2 AQS 抽象類結構分析3 AQS 子類 —— ReentrantLock 結構分析4 AQS 子類 —— ReentrantReadWriteLock 結構分析5 ReentrantLock 源碼

原创 LockSupport 類解析

文章目錄1 LockSupport 方法介紹2 LockSupport 的適用場景3 LockSupport 在 AQS 中的應用4 LockSupport 與 Synchronized 比較參考 1 LockSupport 方法

原创 Object 類解析

文章目錄1 什麼是 Object 類2 Object 類的適用場景3 Object 類中方法解析3.1 getClass() 方法3.2 clone() 方法3.3 hashCode() 方法3.4 finalize() 方法3.

原创 Thread 類解析

文章目錄1 什麼是 Thread 類2 Thread 類的使用場景3 爲什麼要用 Thread 類4 Thread 類方法介紹4.1 init(ThreadGroup, Runnable, name, stackSize)4.2

原创 java == 與 equals() 方法的區別

文章目錄1 == 符號的功能2 == 符號的優點3 == 符號的使用場景4 equals() 方法介紹4.1 equals() 方法使用場景4.2 謹慎的重寫 equals() 方法4.3 重寫 equals() 方法請遵守通用約

原创 Java - sleep yield wait notify notifyAll join 方法功能解析

文章目錄1 sleep 方法解析2 yield 方法解析3 wait 方法解析4 notify() 方法解析5 notifyAll() 方法解析6 join() 方法解析7 幾個方法的區別8 六種線程狀態sleep 方法測試代碼y

原创 文件編碼識別與編碼格式轉換 - java 源碼

文章目錄文件編碼識別源碼編碼格式轉換源碼 文件編碼識別源碼 轉自:java自動探測文件的字符編碼 其中 chardet.jar 包可在 主頁下載,也可在 maven 倉庫直接下載 識別是通過統計數據得到的,可能不準 impor