〖课程介绍〗:
-
本课程从源码到运行、类加载,再到内存分配和垃圾回收,以及JVM调优的技巧与实战。整个课程基于JDK13讲解,理论-实战-面试三结合,带你剖析整个JVM知识体系,一站解决JVM问题。
-

〖课程目录〗:
-
第1章 课程导学与准备工作 2 节 | 13分钟
-
本章主要介绍为何要带大家从零开始学习一门JVM基础与实战相结合的系统课程,之后会为大家介绍本课程内容具体安排,最后给出如何学好这门课程的一些学习建议。希望大家都能通过这门课程,学有所成,学有所归。
-
图文:1-1 课前必读(不看会错过一个亿)
-
视频:1-2 课程介绍及学习指导 (12:18)
-
第2章 认识JVM规范 12 节 | 172分钟
-
本章首先从三种认知角度带你了解JVM以及JVM的组成,帮你建立JVM知识体系,再通过阅读JVM规范来带大家掌握Class文件的格式,实现Class文件字节码的阅读,之后带大家进入ASM的开发,学会动态创建Java类。
-
视频:2-1 从三种认知角度重识JVM (12:19)
-
视频:2-2 JVM规范作用及其核心 (13:43)
-
视频:2-3 理解JVM规范中的虚拟机结构 (14:19)
-
视频:2-4 如何学习JVM规范中的指令集 (11:22)
-
视频:2-5 Class字节码解析:理解ClassFile结构 (13:16)
-
视频:2-6 阅读Class字节码:常量池 (17:43)
-
视频:2-7 阅读Class字节码:类定义和属性 (15:53)
-
视频:2-8 阅读Class字节码:方法和方法调用 (13:08)
-
视频:2-9 ASM开发:编程模型和核心API (14:22)
-
视频:2-10 ASM开发:ClassVisitor开发 (16:36)
-
视频:2-11 ASM开发:MethodVisitor开发 (12:58)
-
视频:2-12 ASM开发:实现模拟AOP功能 (15:24)
-
第3章 类加载、连接和初始化8 节 | 113分钟
-
本章将带大家从类加载到JVM再到类卸载,剖析完整过程中的每个步骤的细节功能和核心技能,结合实战,重点需要大家理解类加载、类加载器,双亲委派模型,理解并掌握各种主动使用类的初始化时机等。
-
视频:3-1 类加载和类加载器 (13:21)
-
视频:3-2 案例:类加载器使用 (16:09)
-
视频:3-3 双亲委派模型 (10:14)
-
视频:3-4 案例:自定义ClassLoader (13:53)
-
视频:3-5 双亲委派模型说明和代码示例 (14:42)
-
视频:3-6 类连接和初始化 (17:49)
-
视频:3-7 案例:类的主动初始化 (10:10)
-
视频:3-8 案例:类的初始化机制和顺序 (15:59)
-
第4章 内存分配6 节 | 115分钟
-
本章先带大家系统学习Java的内存分配模型,堆内存核心内容,内存分配相关的各种参数的配置和使用,然后带大家掌握各种内存溢出,学习如何使用MAT工具进行内存溢出的分析和问题查找。
-
视频:4-1 JVM的简化架构和运行时数据区 (19:09)
-
视频:4-2 Java堆内存模型和分配 (14:38)
-
视频:4-3 案例:Trace跟踪和Java堆的参数配置 (16:52)
-
视频:4-4 案例:新生代配置和GC日志格式 (22:52)
-
视频:4-5 案例:使用MAT进行内存分析 (17:39)
-
视频:4-6 案例:堆、栈、元空间的参数配置 (23:34)
-
第5章 字节码执行引擎4 节 | 58分钟
-
本章先带大家深入Java栈,理解栈帧、运行期操作数和局部变量表之间的交互关系,再带大家剖析方法调用,掌握静态分派和动态分派,最后通过实战带大家理解如何执行方法中的字节码指令。
-
视频:5-1 栈帧和局部变量表 (14:48)
-
视频:5-2 案例:slot是复用的 (12:41)
-
视频:5-3 案例:操作数栈 (14:53)
-
视频:5-4 静态分派和动态分派 (14:47)
-
第6章 垃圾回收10 节 | 153分钟
-
本章先来掌握垃圾回收的不可达算法、垃圾判断步骤、GC类型、引用类型等基础内容,再带大家深入垃圾回收的算法,包括标记清除法、复制算法、标记整理等,最后带大家掌握各种垃圾收集器,包括串行收集器、并行收集器、新生代Parallel Scavenge收集器、CMS、G1等。…
-
视频:6-1 垃圾回收基础和根搜索算法 (13:08)
-
视频:6-2 引用分类 (13:22)
-
视频:6-3 案例:各种引用的实现 (14:58)
-
视频:6-4 垃圾回收基础【跨代引用、记忆集、写屏障、判断垃圾的步骤、STW】 (21:44)
-
视频:6-5 垃圾回收算法 (15:05)
-
视频:6-6 垃圾收集器基础和串行收集器 (12:53)
-
视频:6-7 并行收集器和Parallel Scavenge收集器 (12:58)
-
视频:6-8 CMS收集器 (11:04)
-
视频:6-9 G1收集器 (22:23)
-
视频:6-10 ZGC收集器、GC性能指标和JVM内存配置原则 (14:44)
-
第7章 高效并发7 节 | 99分钟
-
本章先来分析Java内存模型,内存间的交互操作,然后学习多线程的可见性、有序性和指令重排、线程安全的处理方法,最后带大家学习自旋锁、锁消除、锁粗化、轻量级锁、偏向锁等锁优化。
-
视频:7-1 Java内存模型和内存间的交互操作 (13:22)
-
视频:7-2 内存间的交互操作的规则 (10:29)
-
视频:7-3 volatile特性 (12:56)
-
视频:7-4 指令重排原理和规则 (15:30)
-
视频:7-5 代码示例:指令重排的各种情况分析 (16:33)
-
视频:7-6 线程安全处理 (10:31)
-
视频:7-7 锁优化 (18:45)
-
第8章 性能监控与故障处理工具8 节 | 115分钟
-
本章带你掌握实际工作中的高频技能,包括jps、jinfo、jstack、jmap、jstat、jstatd、jcmd等命令行工具和jconsole、 jmc、visualvm等图形化工具,最后结合实际操作带你理解两种远程连接方式:JMX、jstatd。
-
视频:8-1 命令行工具 (14:28)
-
视频:8-2 jconsole (07:37)
-
视频:8-3 jmc1 (18:27)
-
视频:8-4 jmc2 (10:34)
-
视频:8-5 visualVM (16:54)
-
视频:8-6 远程连接 (12:59)
-
视频:8-7 监控实战1 (19:35)
-
视频:8-8 监控实战2 (14:08)
-
第9章 【实战】JVM调优7 节 | 117分钟
-
本章将从调什么、如何调、调的目标是什么三个方面带你掌握如何进行JVM调优,接着传授你JVM调优策略、调优冷思考、调优经验、如何分析和处理内存溢出,最后我们将综合应用这些知识,在给定的应用上,实战JVM调优。
-
视频:9-1 JVM调优:调什么、如何调 (17:06)
-
视频:9-2 调优的目标、调优的策略和调优冷思考 (12:34)
-
视频:9-3 JVM调优经验、内存泄漏分析 (15:29)
-
视频:9-4 实战JVM调优:认识待调优的应用 (18:34)
-
视频:9-5 实战JVM调优:录制JFR并分析结果 (13:06)
-
视频:9-6 实战JVM调优:按照分析结果调整JVM运行时内存参数 (16:49)
-
视频:9-7 实战JVM调优:查找内存泄漏点、分析并处理内存泄漏 (23:14)
-
第10章 面试加油站3 节 | 54分钟
-
本章以面试官视角带你剖析JVM面试问题,掌握回答技巧,轻松搞定面试中涉及到JVM相关问题,为大家的面试助力。
-
视频:10-1 字节码部分【面试精讲】 (15:58)
-
视频:10-2 内存分配【面试精讲】 (20:20)
-
视频:10-3 监控工具和实战【面试精讲】 (17:13)
-
第11章 课程总结1 节 | 9分钟
-
本章将带大家回顾总结课程重点难点,在课程问答区CC老师等着与你进一步交流,有问题欢迎大家到课程问答区提问。
-
视频:11-1 课程总结 (08:54)
有需要联系v;加客服窗口的联系方式
摘要:本文旨在深入探讨【JAVA】理论+实战,构建完整的JVM知识体系。通过对JVM的原理、编译原理、内存模型以及性能调优等方面的详细阐述,帮助读者全面掌握JVM的核心知识,提升Java编程能力。
1、JVM原理
JVM(Java Virtual Machine)是Java程序运行的环境,它负责将Java字节码转换为机器码执行。JVM的原理主要包括类加载机制、字节码执行引擎、垃圾回收机制等。类加载机制负责将Java源代码编译成字节码,并加载到JVM中;字节码执行引擎负责解释执行字节码;垃圾回收机制则负责自动回收不再使用的对象,释放内存空间。
在JVM原理中,类加载机制是关键环节。类加载器负责将类文件加载到JVM中,并创建相应的Class对象。类加载过程包括加载、验证、准备、解析和初始化五个阶段。字节码执行引擎采用即时编译(JIT)技术,将字节码转换为机器码执行,以提高程序运行效率。垃圾回收机制采用多种算法,如标记-清除、标记-整理等,自动回收不再使用的对象,避免内存泄漏。
了解JVM原理有助于我们更好地理解Java程序的运行机制,优化程序性能,提高代码质量。
2、编译原理
编译原理是JVM运行的基础,它包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等环节。词法分析将源代码分解成一个个单词,语法分析则将这些单词组合成语法结构,语义分析则检查这些结构的语义是否正确。中间代码生成将源代码转换为中间代码,代码优化则对中间代码进行优化,提高程序运行效率。最后,目标代码生成将中间代码转换为机器码或字节码。
编译原理的研究有助于我们深入了解JVM的工作原理,优化Java程序的性能。例如,通过优化编译过程,可以减少程序的运行时间,提高内存利用率。
3、内存模型
JVM内存模型主要包括堆、栈、方法区、本地方法栈和程序计数器等部分。堆是Java对象的主要存储区域,栈用于存储局部变量和方法调用信息,方法区用于存储类信息、常量等,本地方法栈用于存储本地方法调用的信息,程序计数器用于记录当前线程的执行状态。
了解JVM内存模型有助于我们更好地管理内存资源,避免内存泄漏和性能问题。例如,合理分配对象存储空间,避免大量对象占用堆内存,可以提高程序运行效率。
4、性能调优
性能调优是提升Java程序运行效率的关键。性能调优主要包括代码优化、JVM参数调整和垃圾回收策略优化等方面。代码优化包括减少不必要的对象创建、优化循环结构、使用合适的数据结构等。JVM参数调整包括调整堆内存大小、垃圾回收策略等。垃圾回收策略优化包括选择合适的垃圾回收算法、调整垃圾回收参数等。
性能调优需要结合实际情况,根据程序运行特点进行优化。通过性能调优,可以显著提高Java程序的运行效率,降低资源消耗。
总结:
本文从JVM原理、编译原理、内存模型和性能调优四个方面,详细阐述了【JAVA】理论+实战,构建完整的JVM知识体系。通过学习本文,读者可以全面掌握JVM的核心知识,提升Java编程能力。
本文由nayona.cn整理
联系我们
关注公众号
微信扫一扫
支付宝扫一扫