课程目录

1 总览全局式的了解Java (18:38)
2 讲讲Java虚拟机的故事 (47:43)
3 编译OpenJDK源码1 (16:10)
4 编译OpenJDK源码2 (22:56)
5 跟踪调试OpenJDK里的源码 (32:22)
6 Win平台上编译OpenJDK源码1 (20:42)
7 Win平台上编译OpenJDK源码2 (13:30)
8 Win平台上编译OpenJDK源码3 (08:37)
9 Win平台上编译OpenJDK源码4 (20:14)
10 Win平台上编译OpenJDK源码5 (10:03)
11 JVM对内存空间的划分概述1 (26:38)
12 JVM对内存空间的划分概述2 (25:18)
13 JVM对内存空间的划分概述3 (37:56)
14 JVM对内存空间的划分概述4 (25:20)
15 JVM对内存空间的划分概述5 (24:24)
16 JVM中创建对象的细节过程 (29:40)
17 JVM中对象的布局 (22:27)
18 JVM中定位对象的方式 (05:56)
19 实战OOM异常的场景1 (17:40)
20 实战OOM异常的场景2 (24:44)
21 实战OOM异常的场景3 (12:53)
22 实战OOM异常的场景4 (28:09)
23 实战OOM异常的场景5 (23:52)
24 垃圾收集器与内存分配策略概述 (18:32)
25 引用计数算法和GC日志1 (27:52)
26 引用计数算法和GC日志2 (17:37)
27 可达性分析算法 (37:49)
28 方法区的垃圾收集 (15:41)
29 垃圾收集算法1 (17:26)
30 垃圾收集算法2 (37:39)
31 串行收集器 (22:36)
32 ParNew收集器 (11:56)
33 PS等几个老年代收集器 (29:22)
34 CMS收集器1 (25:14)
35 CMS收集器2 (35:50)
36 G1收集器1 (18:37)
37 G1收集器2 (35:00)
38 G1收集器3 (32:03)
39 G1收集器4 (42:46)
40 G1收集器5 (23:37)
41 最近的收集器 (29:01)
42 选择垃圾收集器的理论基础 (12:34)
43 实战内存分配与回收策略1 (25:13)
44 实战内存分配与回收策略2 (28:18)
45 实战内存分配与回收策略3 (08:40)
46 JVM监控工具jps和jst (26:01)
47 认识压缩类空间和jinfo工具 (24:47)
48 JVM工具jmap和jstack (35:35)
49 JVM工具jcmd (12:20)
50 JVM可视化调试工具的简介 (17:03)
51 JVM可视化工具jhsdb (43:35)
52 JVM可视化工具jconsole (32:29)
53 JVM可视化工具visualvm的认识 (29:34)
54 工具visualvm做性能分析 (22:43)
55 BTrace工具的初步使用 (25:01)
56 JMC的简介 (12:21)
57 大内存硬件部署程序的策略 (21:06)
58 JVM调优的经典案例2-4 (27:27)
59 JVM调优经典例子5-6以及调优总结 (31:44)
60 JVM调优Eclipse启动实战 (39:48)
61 Class文件的结构概述 (21:52)
62 Class文件的魔数和版本 (14:27)
63 Class文件的常量池1 (27:49)
64 Class文件的常量池2 (26:57)
65 访问标志与类索引与父类索引与接口索引集合 (24:35)
66 Class文件的字段表 (25:28)
67 Class文件的方法表 (17:59)
68 Class文件的属性表概述 (11:35)
69 属性表的Code属性1 (34:58)
70 属性表的Code属性2 (22:32)
71 属性表的Code属性3 (18:33)
72 Exceptions属性 (08:18)
73 LineNumberTable属性 (16:12)
74 LocalVariableTable属性 (25:32)
75 SourceFile属性 (11:03)
76 ConstantValue属性 (11:02)
77 第7到9个属性 (08:48)
78 第10和11个属性 (33:04)
79 第12和13个属性简介 (18:06)
80 属性表剩下的一些属性简介 (17:30)
81 字节码指令基础知识1 (21:57)
82 字节码指令基础知识2 (17:15)
83 字节码指令基础知识3 (11:23)
84 字节码指令基础知识4 (15:34)
85 Java虚拟机类加载机制概述1 (19:48)
86 Java虚拟机类加载机制概述2 (24:36)
87 类加载中的加载阶段 (25:52)
88 类加载中的验证阶段 (34:05)
89 类加载中的准备阶段 (16:33)
90 类加载中的解析阶段1 (21:36)
91 类加载中的解析阶段2 (23:11)
92 类加载中的解析阶段3 (16:59)
93 类加载中的初始化阶段 (28:14)
94 类加载器1 (31:49)
95 类加载器2 (28:13)
96 类加载器3 (15:38)
97 类加载器4 (21:21)
98 类加载器5 (27:37)
99 模块化系统 (36:37)
100 虚拟机字节码执行引擎概述 (21:56)
101 局部变量表1 (25:01)
102 局部变量表2 (10:44)
103 操作栈 (16:58)
104 栈帧信息 (17:12)
105 方法调用1 (25:36)
106 方法调用2 (20:36)
107 方法调用3 (31:29)
108 方法调用4 (28:10)
109 动静态类型语言的区别 (30:29)
110 动态方法调用指令的技术背景 (12:35)
111 如何使用invoke包里的方法句柄 (27:46)
112 invokedynamic指令 (29:23)
113 实战方法分派 (31:49)
114 基于栈的字节码解释执行引擎1 (29:26)
115 基于栈的字节码解释执行引擎2 (15:24)
116 分析Tomcat的类加载器架构1 (22:07)
117 分析Tomcat的类加载器架构2 (34:19)
118 静态代理类实现 (31:34)
119 动态代理类实现1 (27:05)
120 动态代理类实现2 (21:11)
121 实战实现热远程代码的执行1 (23:34)
122 实战实现热远程代码的执行2 (31:54)
123 实战实现热远程代码的执行3 (23:10)
124 前端编译的名词概念1 (24:42)
125 前端编译的名词概念2 (26:13)
126 Javac编译器的编译过程1 (27:04)
127 Javac编译器的编译过程2 (28:27)
128 Javac编译器的编译过程3 (18:28)
129 Javac编译器的编译过程4 (33:05)
130 一个失败的语法糖泛型 (44:03)
131 其他语法糖 (10:39)
132 实战插入式注解处理器1 (27:50)
133 实战插入式注解处理器2 (36:21)
134 实战插入式注解处理器3 (23:14)
135 实战插入式注解处理器4 (40:05)
136 实战插入式注解处理器5 (39:10)
137 实战插入式注解处理器6 (16:38)
138 解释器与编译器 (37:54)
139 编译对象与触发条件1 (25:42)
140 编译对象与触发条件2 (11:57)
141 编译过程 (23:46)
142 实战及时编译器进行编译1 (34:37)
143 实战及时编译器进行编译2 (37:26)
144 了解提前编译 (36:15)
145 实战Jaotc提前编译 (24:28)
146 编译优化技术概述 (22:42)
147 方法内联 (24:29)
148 逃逸分析 (33:48)
149 后面两种优化技术 (19:27)
150 Java内存模型与线程1 (29:39)
151 Java内存模型与线程2 (32:21)
152 Java内存模型与线程3 (38:57)
153 Java内存模型与线程4 (23:21)
154 Java内存模型与线程5 (34:12)
155 Java内存模型与线程6 (17:25)
156 线程安全 (17:50)
157 锁优化 (39:58)
158 反射的概述 (24:19)
159 反射的使用1 (27:51)
160 反射的使用2 (23:26)
161 反射的使用3 (34:37)
162 反射的使用4 (33:17)
163 内省技术的使用 (24:09)