很多JVM的底層技術(shù)細(xì)節(jié)你是否只了解表面?
面對(duì)JVM Crash或性能調(diào)優(yōu)方面的問題時(shí)你是否會(huì)束手無策?
面對(duì)上層Java應(yīng)用發(fā)生的偏離預(yù)期的行為是否會(huì)不知所措?
……
這本書以源碼分析為基礎(chǔ),從運(yùn)行時(shí)、垃圾回收器、即時(shí)編譯器3個(gè)維度全面、深入解析HotSpot VM的底層實(shí)現(xiàn)和工作機(jī)制,同時(shí)與上層的Java語言和庫結(jié)合,指導(dǎo)讀者解決JVM開發(fā)、JVM調(diào)優(yōu)和JVM排錯(cuò)方面遇到的各種問題。
廣度與深度兼顧:廣度上涵蓋Graal VM、CDS、Instrumentation、編譯重放、非標(biāo)準(zhǔn)字節(jié)碼、RTM鎖、JIT調(diào)試工具、EpsilonGC/ShenandoahGC/ZGC、G1字符串去重等重要知識(shí)點(diǎn);深度上深入解析了C1、C2、G1GC、ObjectMonitor、Mutex、模板解釋器等的底層實(shí)現(xiàn)。
全書共 11 章,參考 OpenJDK 社區(qū)的劃分方式來組織內(nèi)容,分為運(yùn)行時(shí)、即時(shí)編譯器、垃圾回收器三個(gè)部分。
第壹部分(第1~6章) 運(yùn)行時(shí)
首先,從Java生態(tài)系統(tǒng)的角度,簡(jiǎn)單介紹了JDK、JVM、JEP、HotSpot VM、Graal VM,引導(dǎo)讀者快速進(jìn)入Java虛擬機(jī)的世界;然后從源碼的角度深入解析了HotSpot VM的類可用機(jī)制、對(duì)象和類、運(yùn)行時(shí)、模板解釋器和并發(fā)設(shè)施。
第二部分(第7~9章) 即時(shí)編譯器
首先重點(diǎn)介紹了即時(shí)編譯器技術(shù)、編譯理論、編譯器調(diào)試方法等編譯器的基礎(chǔ)知識(shí);然后詳細(xì)講解了C1和C2兩個(gè)即時(shí)編譯器的實(shí)現(xiàn)原理、工作機(jī)制和優(yōu)化方法。
第三部分(第10~11章) 垃圾回收器
首先全面介紹了Epsilon GC、Serial GC、Parallel GC、CMS GC、G1 GC、Shenandoah GC、ZGC等各種垃圾回收器,然后重點(diǎn)剖析了G1 GC。
(1)作者是阿里云Java技術(shù)專家,熱衷于研究編程語言的設(shè)計(jì)與實(shí)現(xiàn),對(duì)Java虛擬機(jī)和編譯器都有較深入的研究。
(2)深入分析HotSpot VM的核心源碼,全面解析運(yùn)行時(shí)、垃圾回收器、即時(shí)編譯器的實(shí)現(xiàn)原理和工作機(jī)制
(3)詳細(xì)描述虛擬機(jī)底層實(shí)現(xiàn),同時(shí)與上層Java應(yīng)用和庫相結(jié)合,為JVM的開發(fā)、調(diào)優(yōu)和排錯(cuò)指明方向