JVM 這塊一直沒有系統的學習,在極客時間上買了一個 "深刻拆解Java虛擬機" 專欄,專欄是看完了,可是感受跟看天書同樣,基本都忘了。因此但願藉助看這本書入個門。程序員
整書 400 多頁,包含了大量 JVM 配置參數與代碼實例,我花了週末一天加三個晚上空餘時間看完的,七八小時。讀起來沒那麼累,但沒去實踐仍是比較容易忘記。算法
書提到了這些知識模塊:併發
Java 與虛擬機的發展歷史ide
如何編譯 JDK工具
Java內存區域性能
內存溢出異常學習
垃圾收集器與內存分配策略優化
虛擬機性能監控與故障處理工具spa
調優案例分析與實戰操作系統
類文件結構
虛擬機類加載機制
虛擬機字節碼執行引擎
類加載及執行子系統的案例與實戰
程序編譯與代碼優化
高效併發
熟練使用 Java 語言,開始探索 Java 虛擬機的運行機制。
看這本書,就像在聽做者說關於 Java 如何運行與優化的故事同樣,結構清晰、條理性很好,適合入門 JVM。
書中包含了大量的參數配置以及實驗代碼,JVM 的學習對動手能力要求更高。不去實踐配置調整虛擬機的啓動參數、不寫實驗代碼,是無法感覺到 JVM 在底層究竟是如何運行的,它會產生哪些影響,在什麼狀況下會出問題。
瞭解了 JVM 的內存分佈、各類內存溢出致使的緣由、垃圾收集算法與各類垃圾收集器的特色、虛擬機的性能監控與故障處理、class 文件結構、類編譯加載執行以及各類優化,對咱們平時寫出高質量的 Java 代碼是頗有幫助的,尤爲是遇到 "詭異" 的狀況可以猜出個 123 來。
本地編譯 JDK 是一件有挑戰的事情,由於操做系統的環境問題、未公開代碼的類庫加載、使用了不一樣的編譯器等各類問題,哪怕是一箇中文目錄也可能讓你崩潰。得空本身 high 一把,應該其樂無窮。
瞭解底層不容易,但應該是每一個 Java 程序員所向往的,正如做者說的,Java 與 C++ 之間有一堵由內存動態分配和垃圾收集技術所圍成的高牆,牆外面的人想進去,牆裏面的人卻想出來。
JVM 中關於併發的部分,講的不夠詳細、不夠深刻。
我這是看的初版,後面準備看一下第二版,而後實踐書裏的參數以及實驗代碼,畫個圖分享出來。