深入理解Java虛擬機(jvm性能調優+內存模型+虛擬機原理)
【課程內容】
1.說在前面的話
2.整個部分要講的內容說明
3.環境搭建以及jdk,jre,jvm的關系
4.jvm初體驗-內存溢出問題的分析與解決
5.jvm再體驗-jvm可視化監控工具
6.雜談
7Java的發展歷史
8Java的發展歷史續
9Java技術體系
10jdk8的新特性
12Java虛擬機-classic vm
13Java虛擬機-ExactVM
14Java虛擬機-HotSpotVM
15Java虛擬機-kvm
16Java虛擬機-JRockit
17Java虛擬機-j9
18Java虛擬機-dalvik
19Java虛擬機-MicrosoftJVM
20Java虛擬機-高性能Java虛擬機
21Java虛擬機-TaobaoVM
22Java內存區域-簡介
23Java內存區域-程序計數器
24Java內存區域-Java虛擬機棧
25Java內存區域-本地方法棧
26Java內存區域-堆內存
27Java內存區域-方法區
28Java內存區域-直接內存和運行時常量池
29對象在內存中的布局-對象的創建
30探究對象的結構
31深入理解對象的訪問定位
32垃圾回收-概述
33垃圾回收-判斷對象是否存活算法-引用計數法詳解
34垃圾回收-判斷對象是否存活算法-可達性分析法詳解
35垃圾回收算法-標記清除算法
36垃圾回收算法-復制算法
37垃圾回收算法-標記整理算法和分代收集算法
38垃圾收集器-serial收集器詳解
39垃圾收集器-parnew收集器詳解
40垃圾收集器-parallel收集器詳解
41垃圾收集器-cms收集器詳解
42最牛的垃圾收集器-g1收集器詳解
43內存分配-概述
44內存分配-Eden區域
45內存分配-大對象直接進老年代
46內存分配-長期存活的對象進入老年代
47內存分配-空間分配擔保
48內存分配-逃逸分析與棧上分配
49虛擬機工具介紹
50虛擬機工具-jps詳解
51虛擬機工具-jstat詳解
52虛擬機工具-jinfo詳解
53虛擬機工具-jmap詳解
54虛擬機工具-jhat詳解
55虛擬機工具-jstack詳解
56可視化虛擬機工具-Jconsole內存監控
57可視化虛擬機工具-Jconsole線程監控
58死鎖原理以及可視化虛擬機工具-Jconsole線程死鎖監控
59VisualVM使用詳解
60性能調優概述
61性能調優-案例1
62性能調優-案例2
63性能調優-案例3
64前半部分內容整體回顧
65.Class文件簡介和發展歷史
66.Class文件結構概述
67.Class文件設計理念以及意義
68.文件結構-魔數
69.文件結構-常量池
70.文件結構-訪問標志
71文件結構-類索引
72文件結構-字段表集合
73文件結構-方法表集合
74文件結構-屬性表集合
75字節碼指令簡介
76字節碼與數據類型
77加載指令
78運算指令
79類型轉換指令
80對象創建與訪問指令
81操作樹棧指令
82控制轉移指令
83方法調用和返回指令
84異常處理指令
85同步指令
86類加載機制概述
87類加載時機
88類加載的過程-加載
89類加載的過程-驗證
90類加載的過程-準備
91類加載的過程-解析
92類加載的過程-初始化
93類加載器
94雙親委派模型
95運行時棧幀結構
96局部變量表
97操作數棧
98動態連接
99方法返回地址和附加信息
100方法調用-解析調用
101方法調用-靜態分派調用
102方法調用-動態分派調用
103動態類型語言支持
104字節碼執行引擎小結
105總結與回顧
106happens-before簡單概述
107重排序問題
108鎖的內存語義
109volatile的內存語義
110final域內存語義
11lanmbda表達式簡介