Java虚拟机学习笔记
Java虚拟机学习笔记
目录
一.Java生态
主要介绍Java的技术体系,发展史,虚拟机家族以及Java技术的未来发展.
并单独附加一篇JDK编译实践练习记录.
- Java概述 ,总体概述对Java语言的理解.;
- Java技术体系 ,了解Java的技术体系,通过二八原则,掌握基础和重点以及平时忽略到的Java底层知识;
- Java发展史 ,了解Java发展过程的演变和核心特性以及Java主导者的思路及埋下的坑;
- Java虚拟机家族 ,百家齐放,各个企业对Java虚拟机规范做的实现;
- Java技术的发展 ,展望Java未来的发展动向;
- 实践练习,JDK编译实操练习;
二.自动内存管理
主要介绍Java虚拟机内存的分配,使用和回收,围绕Java内存区及内存溢出异常,内存分配策略和垃圾收集器以及虚拟机性能监控,故障处理工具的使用.并结合案例分析及实操.
- Java内存区域与内存溢出异常 ,理解运行时数据区域的体系以及Hotspot在进行对象创建的内存布局和访问定位及常见区域(堆,虚拟机栈和本地方法栈,方法区及运行时常量池及本地直接内存)的溢出分析;
- 内存分配及垃圾回收,了解对象分配规则以及回收策略,分析对象的状态,引用.了解分代收集理论和3种垃圾回收算法以及HotSpot算法的细节及Java垃圾回收器的实现原理.
- 虚拟机性能监控,故障处理工具 ,掌握常见基础故障工具和可视化故障处理工具,着重介绍阿里巴巴开源的Athas框架;
- JVM调优案例与分析集锦 ,了解JVM异常以及相关的调优分析案例.
三.虚拟机执行子系统
主要介绍Java虚拟机的Class类文件结构及两个核心子系统:虚拟机类加载机制和虚拟机字节码执行引擎.
- 类文件系统 ,了解Class文件设计的初衷,类文件的结构,访问权限设计与实现以及Class类文件的发展;
- 虚拟机类加载机制,类加载的情景,类加载的时机,过程(加载,验证,准备,解析,初始化)及类加载的机制和Java模块化系统;
- 虚拟机字节码执行引擎 ,运行时运行栈帧的结构,方法调用以及动态类型语言的支持(JDK7)和基于栈的字节码解释执行引擎;
- 类加载及执行子系统的案例分析 ,了解相关类加载器架构的实现和字节码生成技术与动态代理的实现.
四.程序编译与代码优化
主要介绍Java虚拟机在编译过程中对代码的优化设计.
- 前端编译与优化 ,介绍javac编译器对java文件以及相关语法糖(泛型,自动装箱,拆箱与遍历循环,条件编译)的处理和注解的处理机制;
- 后端编译及优化,了解即时编译器和提前编译器的过程和优化,着重介绍Oracle的Guaal编译器对JVM虚拟机后端编译的优化介绍;
五.高效并发
主要介绍Java内存模型与线程,线程安全与锁优化的核心内容.
- Java内存模型与线程 ,了解硬件的效率和数据在效率上的区别,同步Java的内存模型的相关设计,Java线程以及Java协程在内存模型方面提出的解决方案.
- 线程安全与锁优化,线程安全的实现和锁优化相关(自旋锁与自适应自旋,锁消除,锁粗化,轻量级锁,偏向锁)的方法;
六.延伸篇
- 官方文档
- 相关论文
- JVM社区
- JVM资源区