原创 JVM虛擬機內存區域(思維導圖)

一:JVM虛擬機內存區域 注: 1.線程私有區域生命週期:(隨線程啓動而創建,隨線程關閉而銷燬) 2.線程共享區域生命週期:(隨虛擬機啓動而創建,隨虛擬機關閉而銷燬)    

原创 SpringAOP原理圖解

最近重溫研究下spring,根據源碼畫成流程圖作爲總結。因spring源碼中各種判斷語句各種神操作,所以我主要按照主流程總結畫 的圖,細節大多省略,目的是能掌握理解springAOP代理類的創建過程(普通Bean創建也是按照這種方式大同小

原创 SpringIOC/Bean生命週期原理(思維導圖)

本人對SpringIOC/Bean生命週期源碼跟蹤分析的筆記與總結圖。 個人強烈建議讀者親自打斷點調試跟蹤源碼,這樣在理解以及記憶上都相對有非常好的幫助。

原创 JVM堆中新生代,老年代,永久代(思維導圖)

  新生代的GC過程叫做MinorGC,採用複製算法,流程如下: (1)把在Eden區與ServivorFrom區中存活的對象複製到ServivorTo區。如果某對象的年齡達到老年代的標準(對象晉升老年代的標準由XX:MaxTenuri

原创 單例設計模式重點解析(五要點)

本文五要點:   1.雙重鎖單例模式的實現。   2.雙重鎖的單例模式是否真的安全以及解決方法。   3.靜態內部類單例模式的實現。   4.枚舉單例模式的實現。   5.避免反射與反序列化破壞單例。 雙重鎖單例模式實現: public

原创 springAOP原理圖解

最近重溫研究下spring,根據源碼畫成流程圖作爲總結。因spring源碼中各種判斷語句各種神操作,所以我主要按照主流程總結畫 的圖,細節大多省略,目的是能掌握理解springAOP代理類的創建過程(普通Bean創建也是按照這種方式大同小

原创 理解建造者模式(Builder)

對於建造者模式,看了許多博客跟書也做個總結(重在理解)。這裏我先直接用例子來講再通過概念與例子做對比就好理解了。 需求:每個人都會有身份證,這裏我就按照去公安局辦身份證時獲取身份證卡片的例子(實際並非如此哈) 身份證實體: /** *

原创 Java併發包重點統計

最近回來複習java併發包的知識,特意做下統計總結(併發包在面試中以及個人技術上都是重中之重),如有錯誤,懇請指點 。 本文通過羅列出來這些常見的,重點的,面試常問的簡單介紹供閱讀者參考(建議讀者針對每個api進行源碼閱讀),並不一一分析

原创 源碼分析String的substring()在jdk1.6,jdk1.7的區別

String中有很多方法,其中substring是面試常考也是工作常用的,很有必要去分析瞭解它的實現。 substring方法,用於截取字符串中指定位置並返回子字符串。用法比較簡單,但它的實現在不同JDK版本卻有一定的差異。 publi

原创 ArrayList核心重點源碼解析

ArrayList是一個可動態添加刪除數據的集合,底層數據結構是數組。當添加數據的容量大於底層數組容量時則會產出擴容,即通過生成數組來實現。它的主要核心就是擴容機制(當插入時所需要的長度超過數組原本的長度時則需要擴容)。本文主要抓Arra

原创 StringBuilder與StringBuffer源碼分析

StringBuilder與StringBuffer,估計面試被問這兩個的問題應該很常見了。但只答出線程安不安全那是遠遠不夠的。 這個兩個東西的出現大多人應該都知道,因爲String不可變,如果想強行可變,那麼會導致一直創建新的Strin

原创 Integer源碼及知識點擴展

一直把所學的東西記錄在自己的筆記上,覺得也應該把一些知識分享出來,個人覺得在學習一個知識點不應該只侷限在當前,而應該擴展出此知識點的其他內容以及帶着疑問自己去研究,加深對知識的理解。 今天就先來分享一下Integer。 Integer很多

原创 Java讀取修改Properties文件

properties文件是我們經常需要操作一種文件,它使用一種鍵值對的形式來保存屬性集。 無論在學習上還是工作上經常需要讀取,修改,刪除properties文件裏面的屬性。 本文通過操作一個properties去認識怎樣操作propert