Java虚拟机学习笔记

目录

一.Java生态

主要介绍Java的技术体系,发展史,虚拟机家族以及Java技术的未来发展.
并单独附加一篇JDK编译实践练习记录.

  1. Java概述 ,总体概述对Java语言的理解.;
  2. Java技术体系 ,了解Java的技术体系,通过二八原则,掌握基础和重点以及平时忽略到的Java底层知识;
  3. Java发展史 ,了解Java发展过程的演变和核心特性以及Java主导者的思路及埋下的坑;
  4. Java虚拟机家族 ,百家齐放,各个企业对Java虚拟机规范做的实现;
  5. Java技术的发展 ,展望Java未来的发展动向;
  6. 实践练习,JDK编译实操练习;

二.自动内存管理

主要介绍Java虚拟机内存的分配,使用和回收,围绕Java内存区及内存溢出异常,内存分配策略和垃圾收集器以及虚拟机性能监控,故障处理工具的使用.并结合案例分析及实操.

  1. Java内存区域与内存溢出异常 ,理解运行时数据区域的体系以及Hotspot在进行对象创建的内存布局和访问定位及常见区域(堆,虚拟机栈和本地方法栈,方法区及运行时常量池及本地直接内存)的溢出分析;
  2. 内存分配及垃圾回收,了解对象分配规则以及回收策略,分析对象的状态,引用.了解分代收集理论和3种垃圾回收算法以及HotSpot算法的细节及Java垃圾回收器的实现原理.
  3. 虚拟机性能监控,故障处理工具 ,掌握常见基础故障工具和可视化故障处理工具,着重介绍阿里巴巴开源的Athas框架;
  4. JVM调优案例与分析集锦 ,了解JVM异常以及相关的调优分析案例.

三.虚拟机执行子系统

主要介绍Java虚拟机的Class类文件结构及两个核心子系统:虚拟机类加载机制和虚拟机字节码执行引擎.

  1. 类文件系统 ,了解Class文件设计的初衷,类文件的结构,访问权限设计与实现以及Class类文件的发展;
  2. 虚拟机类加载机制,类加载的情景,类加载的时机,过程(加载,验证,准备,解析,初始化)及类加载的机制和Java模块化系统;
  3. 虚拟机字节码执行引擎 ,运行时运行栈帧的结构,方法调用以及动态类型语言的支持(JDK7)和基于栈的字节码解释执行引擎;
  4. 类加载及执行子系统的案例分析 ,了解相关类加载器架构的实现和字节码生成技术与动态代理的实现.

四.程序编译与代码优化

主要介绍Java虚拟机在编译过程中对代码的优化设计.

  1. 前端编译与优化 ,介绍javac编译器对java文件以及相关语法糖(泛型,自动装箱,拆箱与遍历循环,条件编译)的处理和注解的处理机制;
  2. 后端编译及优化,了解即时编译器和提前编译器的过程和优化,着重介绍Oracle的Guaal编译器对JVM虚拟机后端编译的优化介绍;

五.高效并发

主要介绍Java内存模型与线程,线程安全锁优化的核心内容.

  1. Java内存模型与线程 ,了解硬件的效率和数据在效率上的区别,同步Java的内存模型的相关设计,Java线程以及Java协程在内存模型方面提出的解决方案.
  2. 线程安全与锁优化,线程安全的实现和锁优化相关(自旋锁与自适应自旋,锁消除,锁粗化,轻量级锁,偏向锁)的方法;

六.延伸篇

  1. 官方文档
  2. 相关论文
  3. JVM社区
  4. JVM资源区

JVM作为Java程序员了解底层原理的进阶必经之路,作为学习和交流,整理出在学习Java的笔记和心得,希望能窥见一孔.栏目内容结合Java虚拟机规范和深入理解Java虚拟机(JVM高级特性与最佳实践)第三版整理输出.欢迎讨论指教斧正.

附:知识体系脑图,持续更新中… …

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值