
第2章:JVM深度解析(100題)面試官視角:本章面試官最看重的3個點內(nèi)存模型和GC的實戰(zhàn)理解——不是背"堆分新生代和老年代",而是能說清楚"什么對象進(jìn)老年代、什么時候觸發(fā)GC、GC日志怎么看"。我見過太多人能畫出JVM內(nèi)存結(jié)構(gòu)圖,但一問線上OOM怎么排查就卡殼線上問題排查能力——CPU飆升、內(nèi)存泄漏、死鎖、頻繁Full GC,這些問題你遇到過嗎?用什么工具排查的?jstack、jmap、Arthas你熟練用哪個?能講出一次完整的排查經(jīng)歷,比背十個參數(shù)都管用調(diào)優(yōu)參數(shù)的合理選擇——不是堆一堆JVM參數(shù),而是能說清楚"我們項目為什么用G1而不是CMS"、“-Xmx為什么設(shè)4G而不是8G”。參數(shù)背后要有業(yè)務(wù)場景和壓測數(shù)據(jù)支撐,否則就是耍流氓2.1 內(nèi)存模型(20題)題121:JVM內(nèi)存模型(運行時數(shù)據(jù)區(qū))?[P6] ?答案:JVM運行時數(shù)據(jù)區(qū)分為5塊:堆、方法區(qū)(元空間)、虛擬機棧、本地方法棧、程序計數(shù)器。其中堆和方法區(qū)是線程共享的,其余三個是線程私有的。堆(Heap):對象實例和數(shù)組分配的地方,GC主要區(qū)域。通過-Xmx和-Xms控制大小。堆里又分新生代和老年代,默認(rèn)