JDK

JDK併發AQS系列(四)

前面說到用自旋方式來獲取鎖,能有效避免執行緒掛起和恢復。但它也有不足之處: 僅適用於佔用時間短、顆粒度很小的情景。 需要硬體級別的原子操作。 它無法保證公平性。 每次讀寫操作需要同

ArrayList的初始容量現在為0,不再是10了

一直記得ArrayList的初始容量大小是10,今天再次看ArrayList的原始碼(版本:Jdk 7u80)時發現在建構函式的註釋上寫著初始化容量是10,但是建構函式中卻沒有指定初始容量,僅僅初始化了一個空的

Spring02——實現動態代理攔截器

實現動態代理的2種方式 第一種:  用JDK提供的 Proxy代理類 和 InvocationHandler呼叫處理類 配合起來可以攔截一個介面下面的實現類,攔截它的方法,這樣可以在它之前做點事情之後做點

JDK動態代理的實現原理以及如何手寫一個JDK動態代理

動態代理 代理模式是設計模式中非常重要的一種型別,而設計模式又是程式設計中非常重要的知識點,特別是在業務系統的重構中,更是有舉足輕重的地位。代理模式從型別上來說,可以分為靜態代理和動態代理兩種型別。 在

JDK 併發 AQS 系列(三)

鎖的獲取與釋放 在資料競爭情況下,一個執行緒只有在成功獲取鎖後才能繼續往下執行,當離開競爭區域時將釋放鎖,釋放的鎖供其他即將進入資料競爭區域的執行緒獲取。 同步器一般用acquire和r

JDK併發AQS系列(三)

在資料競爭情況下,一個執行緒只有在成功獲取鎖後才能繼續往下執行,當離開競爭區域時將釋放鎖,釋放的鎖供其他即將進入資料競爭區域的執行緒獲取。 同步器一般用acquire和release方法執行獲取釋放鎖操作,

JDK 的原始碼你真的讀懂了嗎?

如果看過JDK原始碼的同學基本上都看到過類似於下面的語句: 對“final ReentrantLock lock = this.lock; ”這種寫法不知道大家是啥感受,我當時看到是非常奇怪的,於是就搜尋了

從 JDK 原始碼角度看 Object

Java的Object是所有其他類的父類,從繼承的層次來看它就是最頂層根,所以它也是唯一一個沒有父類的類。它包含了物件常用的一些方法,比如getClass、hashCode、equals、clone、toS

JDK 12 正式收錄了我們的 Patch

國慶假期歸來就收到喜訊,之前給社群提交的patch( PerfMa給OpenJDK社群提交的第一個Patch )已經正式收錄到JDK12了(點選“閱讀原文”,可檢視詳情),非常感謝社群的小夥伴的積極配合,從提

linux自學(七)之開始linux學習,安裝jdk

如果你認真跟著前面操作那麼一定都完成相關配置及下載,我們的目的是部署Javaweb專案,需要jdk,mysql,tomcat。那麼接下來我們就開始先進行安裝jdk。 jdk 首先到oracle官網進行

JDK中列舉的底層實現

前提 上一篇文章複習介紹了JDK中註解的底層實現,跟註解一樣比較常用,但是底層實現比較神祕的還有列舉型別。趁著國慶假期的最後兩天,把JDK中列舉的底層實現也進行一次探究。 通過例子查詢本質 在探究J

使用 Cglib 實現多重代理

前言 由於 Cglib 本身的設計,無法實現在 Proxy 外面再包裝一層 Proxy(JDK Proxy 可以),通常會報如下錯誤: Caused by: java.lang.ClassFormatE

1745989157.1886