JVM虛擬機,也就那麼回事!(總結+繪圖+流程+代碼)

利用閒餘時間,看視頻,搜資料,參考+總結繪製出了下面的數據流圖,流圖內容包括:


(1)如何針對億級流量的電商網站做JVM性能調優?

(2)什麼是MinorGC,什麼是FullGC,什麼又是STW?

(3)新生代包括哪些空間,且如何寫程序,藉助jvisualvm工具查看程序的gc情況?

(4)什麼樣的對象會進入老年代?

(5)對象在內存中的結構是什麼,Mark Word存儲了哪些信息?

(6)如何描述JVM運行時數據區各部分空間與Java線程之間的關係和聯繫?

(7)Java程序是如何通過JVM虛擬機,一步步執行,最終得到用戶想要的結果的?

(8)商用虛擬機除了Oracle的HotSpot外,還有哪些?

(9)程序計數器是否是線程私有的,它是用來幹什麼的,以及什麼是JVM虛擬機棧的棧幀?

(10)什麼是JMM?它的作用是什麼?以及JMM模型如何描述主內存、工作內存和線程之間的關係?

(11)什麼是CPU緩存? 緩存分哪幾級,緩存的讀寫性能與緩存的大小是什麼關係?

(12)什麼是緩存行?如何解決緩存行對齊或僞共享問題?

(13)CPU是如何執行線程指令對數據進行讀寫的?

(14)Java如何保證多線程數據的可見性? volatile關鍵是否保證i++操作的原子性?

  (15) .... .... .... .... .......

 

分享鏈接:https://processon.com/view/5eee24c51e085326373836da


圖中內容有待整理和完善,一些說的不清楚或畫的不對的地方,後續會進行確認和修訂,總之內容會不斷擴充!

流程圖內容只是Java技術架構體系中的冰山一角,要想翻越大山,不經歷重重自我摧殘和折磨,是看不到任何登頂的希望的!


話不多說,上幾張圖:

 

 


 

 


 

 


 

 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章