一、运行时数据区
1、java程序的执行过程
2、虚拟机
3、jvm组成和架构示意
4、运行时数据区
二、对象分配过程完全解析
1、堆内存划分
2、java中GC机制
3、对象逃逸与代码优化
(1)对象逃逸
非逃逸:一个对象的作用域仅限于方法区域内部在使用的情况下;
非逃逸:一个对象的作用域仅限于方法区域内部在使用的情况下;
(2)代码优化
栈上分配:JIT编译器在编译期间根据逃逸分析计算结果,如果发现当前对象没有发生逃逸现象,那么当前对象就可能被优化成栈上分配,会将对象直接分配在栈中;
标量替换:有的对象可能不需要作为一个连续的内存结构存在也能被访问到,那么对象部分可以不存储在内存,而是存储在CPU寄存器中。
4、对象的生产与对象内存分布
(1)对象创建的几种实例化方案
(2)对象的创建步骤
三、GC与调优
待更新
四、ART与调优
待更新
五、字节码以及类加载相关
1、类的生命周期
2、类的加载器对比
(1)java类加载器
(2)Android类加载器