1. 前言 為什么會接觸JavaAgent呢? 這起源于筆者最近在讀Dubbo的源碼,Dubbo有一個很有意思的功能——SPI,它可以根據(jù)運行時的URI參數(shù),自適應(yīng)的調(diào)用特定...
1. 前言 為什么會接觸JavaAgent呢? 這起源于筆者最近在讀Dubbo的源碼,Dubbo有一個很有意思的功能——SPI,它可以根據(jù)運行時的URI參數(shù),自適應(yīng)的調(diào)用特定...
前言 AQS全稱:AbstractQueuedSynchronizer,抽象的隊列同步器,和synchronized不同的是,它是使用Java編寫實現(xiàn)的一個同步器,開發(fā)者可以...
前言 Java相較于其他編程語言更加容易學(xué)習(xí),這其中很大一部分原因要歸功于JVM的自動內(nèi)存管理機制。對于從事C語言的開發(fā)者來說,他們擁有每一個對象的「所有權(quán)」,更大的權(quán)力也意...
1. 日志工廠 一個軟件,不管是本地開發(fā)調(diào)試,還是線上生產(chǎn)運行,日志的收集都是非常重要的。如何設(shè)計一個靈活的日志系統(tǒng)呢? 將日志的功能抽象出來,封裝成接口: 每個日志記錄器都...
單一職責(zé) 應(yīng)該有且僅有一個原因引起類的變更。 例如,設(shè)計一個視頻播放系統(tǒng),要求:如果是VIP用戶就播放完整影片,否則只允許試看5分鐘。 這個類的設(shè)計明顯不符合單一職責(zé),它做了...