《JVM精講與GC調(diào)優(yōu)教程》精華版
JVM故障診斷與性能優(yōu)化,是中高級程序員、架構(gòu)師等的必備技能,更是入職大廠的敲門磚。JVM作為Java生態(tài)的核心價值體現(xiàn),垃圾回收算法、JIT、底層原理值得每個程序員去探索,而且JVM是跨語言的平臺,對于深入理解Scala、Kotlin、JavaScript、Jython、Groovy等語言非常有幫助。
本套教程為滿足更多學(xué)習(xí)者的需求,是經(jīng)典教程的濃縮精華版,重點與難點突出,更注重實戰(zhàn)演練,集成了百余道大廠真題,并增加了調(diào)優(yōu)內(nèi)容,含4大OOM案例和7大性能優(yōu)化案例。學(xué)習(xí)者可以通過本套教程,快速學(xué)習(xí)或有選擇的學(xué)習(xí)。
教程目錄
01-教程簡介
02-JVM與GC調(diào)優(yōu)內(nèi)容介紹
03-JVM內(nèi)容概述
04-字節(jié)碼文件的概述
05-字節(jié)碼相關(guān)的面試題(上)
06-字節(jié)碼相關(guān)的面試題(下)
07-Class文件結(jié)構(gòu)的分析
08-相關(guān)的字節(jié)碼指令
09-類的加載概述_loading的階段
10-鏈接環(huán)節(jié)的執(zhí)行
11-類的初始化_主動使用與被動使用
12-類的使用與類的卸載
13-類的加載器的分類
14-ClassLoader的源碼分析
15-自定義類的加載器
16-雙親委派機制
17-Tomcat的類加載機制
18-程序計數(shù)器的理解
19-棧的理解
20-局部變量表的說明
21-操作數(shù)棧
22-動態(tài)鏈接(指向運行時常量池中該方法的引用)
23-方法返回地址
24-??偨Y(jié)的五個面試問題
25-本地方法棧的說明
26-堆空間大小的設(shè)置
27-新生代與老年代的參數(shù)設(shè)置
28-對象分配過程
29-MinorGC、MajorGC、FullGC
30-方法區(qū)的設(shè)置_演進(jìn)
31-教程小結(jié)
32-對象的創(chuàng)建方式
33-創(chuàng)建的對象的內(nèi)存分配過程
34-對象的內(nèi)存布局
35-對象的訪問定位
36-解釋器與JIT編譯器
37-JIT針對何種代碼進(jìn)行提前編譯
38-兩種不同的編譯器C1和C2
39-GC的基本概念
40-引用技術(shù)算法的理解
41-可達(dá)性分析算法
42-垃圾標(biāo)記和清除環(huán)節(jié)的算法
43-System.gc()與finalize()的說明
44-內(nèi)存溢出和內(nèi)存泄漏問題
45-安全點與安全區(qū)域_并行與并發(fā)
46-五種引用的說明
47-GC評價指標(biāo)
48-GC的組合關(guān)系
49-SerialGC
50-ParNewGC
51-ParallelGC
52-CMSGC
53-G1GC
54-GC日志分析
55-案例一:堆溢出
56-案例二:元空間溢出
57-案例三:GC overhead limit exceeded
58-案例四:創(chuàng)建線程1
59-案例四:創(chuàng)建線程2
60-調(diào)優(yōu)的基本問題
61-調(diào)優(yōu)的步驟
62-Jmeter的配置
63-優(yōu)化案例1:調(diào)整堆大小提升服務(wù)的吞吐量
64-優(yōu)化案例2:逃逸分析之棧上分配
65-優(yōu)化案例2:逃逸分析之標(biāo)量替換、鎖消除
66-優(yōu)化案例3:合理配置堆內(nèi)存
67-如何計算YGC發(fā)生頻率
68-UseAdaptiveSizePolicy的使用
69-優(yōu)化案例4:CPU占用很高的排查方案
70-優(yōu)化案例5:G1并發(fā)GC線程數(shù)對性能的影響
71-優(yōu)化案例6:調(diào)整垃圾回收器對吞吐量的影響
72-優(yōu)化案例7:日均百萬訂單如何設(shè)置JVM參數(shù)
73-多種命令行工具的使用
74-Arthas的基本使用
75-教程總結(jié)