原创 JDK動態代理和cglib代理的區別

一. 問題背景 面試題可能會問到AOP,然後其中涉及了動態代理,所以描述完了aop實現了哪些功能後,最好回答一下jdk動態代理和cglib代理的區別 參考自: Spring AOP中的JDK和CGLib動態代理哪個效率更高?

原创 鎖升級的過程

文章目錄一. 問題背景二. 鎖升級的過程 一. 問題背景 面試的過程中可能會問到“鎖升級的過程”。 二. 鎖升級的過程 鎖的狀態有無鎖、偏向鎖、輕量級鎖、重量級鎖。鎖的狀態會隨着鎖的競爭升級,這是一個不可逆的過程。 代碼進

原创 logback日誌能正常運行但是log變量報錯can not resolve log

文章目錄一. 問題背景二. 解決方案2.1 idea版本是2019以前的版本2.2 idea版本是2019以及以後的版本 一. 問題背景 今天學習黑馬出品的全面深入學習java併發編程,java基礎進階中級必會教程,裏面用到了lo

原创 Spring bean生命週期的源碼分析(超級詳細)

文章目錄一. 問題背景二. 儲備知識三. 問題引入3.1 循環依賴3.2 對循環依賴的分析3.3 兩個小結論3.4 驗證兩個小結論四. Spring如何創建一個Bean4.1 預備知識4.2 Java對象和Spring對象的產生過

原创 Java內存模型Java Memory Model(JMM)

文章目錄一. 問題背景二. 儲備知識2.1 併發和並行2.2 硬件效率與一致性2.2.1 引入Cache提高效率2.2.2 迎來新的問題:緩存一致性Cache Coherence2.2.3 解決方案:緩存一致性協議2.2.4 處理

原创 GC中的STW_以及_OopMap_以及_safePoint安全點_以及safeRegion

文章目錄一. 問題背景二. 爲什麼會有safePoint三. safePoint是什麼四. 線程停頓的方式4.1 搶先式中斷4.2 主動式中斷五. safePoint出現在哪些位置六. safeRegion七. 總結 一. 問題背

原创 基於Java方式配置Spring

文章目錄一. 問題背景二. 基於Java方式配置Spring2.1 @Configuration 和 @Bean 一. 問題背景 在面試題中“Spring是什麼”中說到“Spring的3種配置方式有:基於xml方式;基於註解方式;

原创 Java對象什麼時候死亡_以及_finalize()方法的執行過程

文章目錄一. 問題背景二. 儲備知識2.1 引用2.1.1 強引用Strong Reference2.1.2 軟引用Soft Reference2.1.3 弱引用Weak Reference2.1.4 虛引用Phantom Ref

原创 Jav的空閒鏈表簡介

一. 問題背景 有一條面試題”對象的創建方法“涉及空閒鏈表,與之對應的內存分配規則還有指針碰撞,今天來簡單的瞭解一下指針碰撞。 此筆記僅供自己參考,如有錯誤請指正 參考自:一張圖解釋指針碰撞和空閒列表 二. 空閒鏈表 簡單介紹空閒

原创 Java的對象組成簡介

文章目錄一. 問題背景二. 對象的組成2.1對象頭Object Header2.1.1 Mark Word2.1.2 Klass Word(指向類的指針)2.1.3 數組長度array length2.2 實例數據Instance

原创 對象分配流程_以及_棧分配與TLAB的區別

文章目錄一. 回顧二. 區別2.1 棧分配2.2 TLAB2.3 總結三. 對象分配流程 一. 回顧 前面瞭解了jvm中的逃逸分析和jvm中的TLAB,今天對兩者的區別進行分析。 參考自:關於棧上分配和TLAB的理解 此筆記僅供

原创 jvm中的逃逸分析

文章目錄一. 問題背景二. 逃逸分析2.1 什麼是逃逸分析?2.2 逃逸分析的jvm參數2.3 一個對象的逃逸狀態2.3.1 全局逃逸GlobalEscape2.3.2 參數逃逸ArgEscape2.3.3 沒有逃逸2.4 逃逸分

原创 Java的指針碰撞簡介

一. 問題背景 在瞭解TLAB的來源時涉及指針碰撞 此筆記僅供自己參考,如有錯誤請指正 參考自:淺析java中的TLAB 二. 指針碰撞 2.1 簡介 2.2 碰撞的可能情況 還有其他情況不一一詳述,在此只是爲了表達什麼是指針

原创 jvm中的TLAB

文章目錄一. 回顧二. TLAB的來源2.1 指針碰撞2.2 TLAB的出現2.3 TLAB的本質2.4 TLAB的缺點 一. 回顧 前面瞭解了jvm中的逃逸分析,逃逸分析中有涉及棧分配,今天瞭解一下TLAB(Thread Loc

原创 TreeMap原理(淺談)

一. 回顧 前面瞭解了LinkedHashMap原理(淺談),今天瞭解一下TreeMap。 二. 儲備知識 在瞭解TreeMap前,瞭解以下兩個知識比較容易理解:Comparable和Comparator;一致性hash 2.1