最近打算作好現有工做的前提下,紮實一下本身專業的技術知識,並將相關的經典書也記錄一下。今天看了一些JVM相關的知識,這裏面的經典是《深刻理解Java虛擬機》,適合有點基礎又想深刻理解其中原理的朋友。算法
做者是周志明,資深Java技術專家,對JavaEE企業級應用開發、OSGi、Java虛擬機和工做流等都有深刻的研究,並在大量的實踐中積累了豐富的經驗。尤爲精通Java虛擬機,撰寫了大量與JVM相關的經典文章,被各大技術社區爭相轉載,是ITeye等技術社區公認的Java虛擬機方面的領袖人物之一。除本書外,還著有經典著做《深刻理解OSGi:Equinox原理、應用與最佳實踐》,廣獲讀者好評。現任遠光軟件股份有限公司開發部總經理兼架構師,前後參與過國家電網、南方電網等多個國家級大型ERP項目的平臺架構工做,對軟件系統架構也有深入的認識和體會。
《深刻理解Java虛擬機:JVM高級特性與最佳實踐(第2版)》共分爲五大部分,圍繞內存管理、執行子系統、程序編譯與優化、高效併發等核心主題對JVM進行了全面而深刻的分析,深入揭示了JVM的工做原理。
第一部分從宏觀的角度介紹了整個Java技術體系、Java和JVM的發展歷程、模塊化,以及JDK的編譯,這對理解書中後面內容有重要幫助。
第二部分講解了JVM的自動內存管理,包括虛擬機內存區域的劃分原理以及各類內存溢出異常產生的緣由;常見的垃圾收集算法以及垃圾收集器的特色和工做原理;常見虛擬機監控與故障處理工具的原理和使用方法。
第三部分分析了虛擬機的執行子系統,包括類文件結構、虛擬機類加載機制、虛擬機字節碼執行引擎。
第四部分講解了程序的編譯與代碼的優化,闡述了泛型、自動裝箱拆箱、條件編譯等語法糖的原理;講解了虛擬機的熱點探測方法、HotSpot的即時編譯器、編譯觸發條件,以及如何從虛擬機外部觀察和分析JIT編譯的數據和結果;
第五部分探討了Java實現高效併發的原理,包括JVM內存模型的結構和操做;原子性、可見性和有序性在Java內存模型中的體現;先行發生原則的規則和使用;線程在Java語言中的實現原理;虛擬機實現高效併發所作的一系列鎖優化措施。架構
《Java虛擬機規範 (Java SE 7 中文版)》是一份根據《Java Virtual Machine Specification (Java SE 7)》翻譯的、非官方的、以Open Document形式發佈的文檔。 併發