JVM 這塊一直沒有系統的學習,在極客時間上買了一個 "深入拆解Java虛拟機" 專欄,專欄是看完了,但是感覺跟看天書一樣,基本都忘了。是以希望借助看這本書入個門。
整書 400 多頁,包含了大量 JVM 配置參數與代碼執行個體,我花了周末一天加三個晚上空餘時間看完的,七八小時。讀起來沒那麼累,但沒去實踐還是比較容易忘記。
書提到了這些知識子產品:
Java 與虛拟機的發展曆史
如何編譯 JDK
Java記憶體區域
記憶體溢出異常
垃圾收集器與記憶體配置設定政策
虛拟機性能監控與故障處理工具
調優案例分析與實戰
類檔案結構
虛拟機類加載機制
虛拟機位元組碼執行引擎
類加載及執行子系統的案例與實戰
程式編譯與代碼優化
高效并發
熟練使用 Java 語言,開始探索 Java 虛拟機的運作機制。
看這本書,就像在聽作者說關于 Java 如何運作與優化的故事一樣,結構清晰、條理性很好,适合入門 JVM。
書中包含了大量的參數配置以及實驗代碼,JVM 的學習對動手能力要求更高。不去實踐配置調整虛拟機的啟動參數、不寫實驗代碼,是沒法感受到 JVM 在底層到底是如何運作的,它會産生哪些影響,在什麼情況下會出問題。
了解了 JVM 的記憶體分布、各種記憶體溢出導緻的原因、垃圾收集算法與各種垃圾收集器的特點、虛拟機的性能監控與故障處理、class 檔案結構、類編譯加載執行以及各種優化,對我們平時寫出高品質的 Java 代碼是很有幫助的,尤其是遇到 "詭異" 的情況能夠猜出個 123 來。
本地編譯 JDK 是一件有挑戰的事情,因為作業系統的環境問題、未公開代碼的類庫加載、使用了不同的編譯器等各種問題,哪怕是一個中文目錄也可能讓你崩潰。得空自己 high 一把,應該其樂無窮。
了解底層不容易,但應該是每個 Java 程式員所向往的,正如作者說的,Java 與 C++ 之間有一堵由記憶體動态配置設定和垃圾收集技術所圍成的高牆,牆外面的人想進去,牆裡面的人卻想出來。
JVM 中關于并發的部分,講的不夠詳細、不夠深入。
我這是看的第一版,後面準備看一下第二版,然後實踐書裡的參數以及實驗代碼,畫個圖分享出來。