JVM从入门到精通视频下载
├─1.JVM上篇:内存与垃圾回收篇
│ │ 代码.zip
│ │ JVM从入门到精通.pdf
│ │ 资料.zip
│ │ 软件下载地址.txt
│ │
│ ├─JVM上篇配图
│ │ JVM上篇配图.zip
│ │
│ └─视频
│ │
│ ├─第1章:JVM与Java体系结构
│ │ 01-JVM内存与垃圾回收篇概述.mp4
│ │ 02-如何看待Java上层技术与JVM.mp4
│ │ 03-为什么要学习JVM.avi
│ │ 04-面向人群和课程特点.avi
│ │ 05-官方规范下载与参考书目.avi
│ │ 06-跨平台的语言Java和跨语言的平台JVM.avi
│ │ 07-字节码与多语言混合编程.avi
│ │ 08-Java及JVM历史上的重大事件.avi
│ │ 09-虚拟机与Java虚拟机介绍.avi
│ │ 10-JVM的位置.avi
│ │ 11-JVM的整体结构.avi
│ │ 12-Java代码执行流程.avi
│ │ 13-区分栈的指令集架构和寄存器的指令集架构.avi
│ │ 14-JVM的生命周期.avi
│ │ 15-SUN Classic VM的介绍.avi
│ │ 16-Exact VM的介绍.avi
│ │ 17-HotSpot VM的介绍.avi
│ │ 18-JRockit VM的介绍.avi
│ │ 19-IBM J9 VM的介绍.avi
│ │ 20-KVM、CDC、CLDC的介绍.avi
│ │ 21-Azul VM和BEA Liquid VM的介绍.avi
│ │ 22-Apache Harmony的介绍.avi
│ │ 23-Microsoft JVM和TaobaoJVM.avi
│ │ 24-Dalvik VM及其他虚拟机的介绍.avi
│ │ 25-Graal VM的介绍.avi
│ │
│ ├─第2章:类加载子系统
│ │ 26-内存结构概述.mp4
│ │ 27-概述类的加载器及类加载过程.avi
│ │ 28-类的加载过程一:Loading.avi
│ │ 29-类的加载过程二:Linking.avi
│ │ 30-类的加载过程三:Initialization.avi
│ │ 31-几种类加载器的使用体会.avi
│ │ 32-引导类、扩展类、系统类加载器的使用及演示.avi
│ │ 33-为什么需要用户自定义类加载器及具体实现.avi
│ │ 34-ClassLoader的常用方法及获取方法.avi
│ │ 35-双亲委派机制的工作原理及演示.avi
│ │ 36-双亲委派机制的优势.avi
│ │ 37-沙箱安全机制.avi
│ │ 38-类的主动使用与被动使用等.avi
│ │
│ ├─第3章:运行时数据区概述及线程
│ │ 39-运行时数据区内部结构.avi
│ │ 40-JVM中的线程说明.avi
│ │
│ ├─第4章:程序计数器
│ │ 41-PC寄存器概述.avi
│ │ 42-PC寄存器的使用举例.avi
│ │ 43-解决PC寄存器两个面试问题.avi
│ │
│ ├─第5章:虚拟机栈
│ │ 44-虚拟机栈的主要特点.avi
│ │ 45-虚拟机栈的常见异常与如何设置栈大小.avi
│ │ 46-栈的存储结构和运行原理.avi
│ │ 47-栈桢的内部结构.avi
│ │ 48-局部变量表结构的认识.avi
│ │ 49-字节码中方法内部结构的剖析.avi
│ │ 50-变量槽slot的理解与演示.avi
│ │ 51-静态变量与局部变量的对比及小结.avi
│ │ 52-操作数栈的特点.avi
│ │ 53-涉及操作数栈的字节码指令执行分析.avi
│ │ 54-栈顶缓存技术.avi
│ │ 55-动态链接的理解与常量池的作用.avi
│ │ 56-方法的绑定机制:静态绑定与动态绑定.avi
│ │ 57-4种方法调用指令区分非虚方法与虚方法.avi
│ │ 58-invokedynamic指令的使用.avi
│ │ 59-方法重写的本质与虚方法表的使用.avi
│ │ 60-方法返回地址的说明.avi
│ │ 61-栈桢中的一些附加信息.avi
│ │ 62-虚拟机栈的5道面试题.avi
│ │
│ ├─第6章:本地方法接口
│ │ 63-本地方法接口的理解.avi
│ │
│ ├─第7章:本地方法栈
│ │ 64-本地方法栈的理解.avi
│ │
│ ├─第8章:堆
│ │ 65-JVM学习路线与内容回顾.mp4
│ │ 66-堆空间的概述_进程中堆的唯一性.mp4
│ │ 67-堆空间关于对象创建和和GC的概述.mp4
│ │ 68-堆的细分内存结构.mp4
│ │ 69-堆空间大小的设置和查看.avi
│ │ 70-OOM的说明与举例.avi
│ │ 71-新生代与老年代中相关参数的设置.avi
│ │ 72-图解对象分配的一般过程.avi
│ │ 73-对象分配的特殊情况.avi
│ │ 74-代码举例与JVisualVM演示对象的分配过程.avi
│ │ 75-常用优工具概述与Jprofiler的演示.avi
│ │ 76-MinorGC、MajorGC和FullGC的对比.avi
│ │ 77-GC举例与日志分析.avi
│ │ 78-体会堆空间分代的思想.avi
│ │ 79-总结内存分配策略.avi
│ │ 80-堆空间为每个线程分配的TLAB.avi
│ │ 81-小结堆空间的常用参数设置.avi
│ │ 82-通过逃逸分析看堆空间的对象分配策略.avi
│ │ 83-代码优化之栈上分配.avi
│ │ 84-代码优化之同步省略.avi
│ │ 85-代码优化之标量替换.avi
│ │ 86-代码优化及堆的小结.avi
│ │
│ ├─第9章:方法区
│ │ 87-方法区概述_栈堆方法区间的交互关系.avi
│ │ 88-方法区的基本理解.avi
│ │ 89-Hotspot中方法区的演进.avi
│ │ 90-设置方法区大小的参数.avi
│ │ 91-OOM:PermGen和OOM:Metaspace举例.avi
│ │ 92-方法区的内部结构1.avi
│ │ 93-方法区的内部结构2.avi
│ │ 94-class文件中常量池的理解.avi
│ │ 95-运行时常量池的理解.avi
│ │ 96-图示举例方法区的使用.avi
│ │ 97-方法区在jdk6、jdk7、jdk8中的演进细节.avi
│ │ 98-StringTable为什么要调整位置.avi
│ │ 99-如何证明静态变量存在哪.avi
│ │ 100-方法区的垃圾回收行为.avi
│ │ 101-运行时数据区的总结与常见大厂面试题说明.avi
│ │
│ ├─第10章:对象的实例化内存布局与访问定位
│ │ 102-对象实例化的几种方式.avi
│ │ 103-字节码角度看对象的创建过程.avi
│ │ 104-对象创建的六个步骤.avi
│ │ 105-对象的内存布局.avi
│ │ 106-对象访问定位.avi
│ │
│ ├─第11章:直接内存
│ │ 107-直接内存的简单体验.mp4
│ │ 108-使用本地内存读写数据的测试.avi
│ │ 109-直接内存的00M与内存大小的设置.avi
│ │
│ ├─第12章:执行引擎
│ │ 110-执行引擎的作用及工作过程概述.avi
│ │ 111-Java程序的编译和解释运行的理解.avi
│ │ 112-机器码_指令_汇编_高级语言理解与执行过程.avi
│ │ 113-解释器的使用.avi
│ │ 114-HotspotVM为何解释器与JIT编译器并存.avi
│ │ 115-热点代码探测确定何时JIT.avi
│ │ 116-Hotspot设置模式_C1与C2编译器.avi
│ │ 117-Graal编译器与AOT编译器.avi
│ │
│ ├─第13章:StringTable
│ │ 118-String的不可变性.avi
│ │ 119-String底层Hashtable结构的说明.avi
│ │ 120-String内存结构的分配位置.avi
│ │ 121-两个案例熟悉String的基本操作.avi
│ │ 122-字符串拼接操作的面试题讲解.avi
│ │ 123-字符串变量拼接操作的底层原理.avi
│ │ 124-拼接操作与append操作的效率对比.avi
│ │ 125-intern()的理解.avi
│ │ 126-new String()到底创建了几个对象.avi
│ │ 127-关于intern()的面试难题.avi
│ │ 128-面试的拓展问题.avi
│ │ 129-intern()的课后练习1.avi
│ │ 130-intern()的课后练习2.avi
│ │ 131-intern()的空间效率测试.avi
│ │ 132-StringTable的垃圾回收测试.avi
│ │ 133-G1垃圾收集器的String去重操作.avi
│ │
│ ├─第14章:垃圾回收概述
│ │ 134-垃圾回收相关章节的说明.avi
│ │ 135-什么是GC,为什么需要GC.avi
│ │ 136-了解早期垃圾回收行为.avi
│ │ 137-Java自动内存管理介绍.avi
│ │
│ ├─第15章:垃圾回收相关算法
│ │ 138-垃圾回收相关算法概述.avi
│ │ 139-引用计数算法的原理及优缺点.avi
│ │ 140-Java代码举例_Python的引用计数实施方案.avi
│ │ 141-可达性分析算法与GC Roots.avi
│ │ 142-对象的finalization机制.avi
│ │ 143-代码演示可复活的对象.avi
│ │ 144-使用MAT查看GC Roots.avi
│ │ 145-使用JProfiler进行GC Roots溯源.avi
│ │ 146-使用JProfiler分析OOM.avi
│ │ 147-标记-清除算法原理及优缺点.avi
│ │ 148-复制算法原理及优缺点.avi
│ │ 149-标记-压缩算法原理及优缺点.avi
│ │ 150-不同指标上对比三种算法.avi
│ │ 151-分代收集算法的说明.avi
│ │ 152-增量收集算法原理及优缺点.avi
│ │ 153-分区算法的说明.avi
│ │
│ ├─第16章:垃圾回收相关概念
│ │ 154-垃圾回收相关概念的概述.avi
│ │ 155-System.gc()的理解.avi
│ │ 156-手动gc理解不可达对象的回收行为.avi
│ │ 157-内存溢出的分析.avi
│ │ 158-内存泄漏的分析.avi
│ │ 159-StopTheWorld事件的理解.avi
│ │ 160-程序的并行与并发.avi
│ │ 161-垃圾回收的并行与并发.avi
│ │ 162-安全点与安全区域的说明.avi
│ │ 163-Java中几种不同引用的概述.avi
│ │ 164-强引用:不回收.avi
│ │ 165-软引用:内存不足即回收.avi
│ │ 166-弱引用:发现即回收.avi
│ │ 167-虚引用:对象回收跟踪.avi
│ │ 168-终结器引用的介绍.avi
│ │
│ └─第17章:垃圾回收器
│ 169-垃圾回收器章节概览.avi
│ 170-垃圾回收器的分类.avi
│ 171-GC性能指标的整体说明.avi
│ 172-吞吐量与暂停时间的对比说明.avi
│ 173-垃圾回收器的发展迭代史.avi
│ 174-垃圾回收器的组合关系.avi
│ 175-如何查看默认的垃圾回收器.avi
│ 176-Serial与Serial Old垃圾回收器的介绍.avi
│ 177-如何设置使用Serial垃圾回收器.avi
│ 178-ParNew垃圾回收器的介绍.avi
│ 179-如何设置使用ParNew垃圾回收器.avi
│ 180-Parallel与Parallel Old垃圾回收器的介绍.avi
│ 181-Parallel垃圾回收器的相关参数设置.avi
│ 182-CMS垃圾回收器概述与工作原理.avi
│ 183-CMS的特点与弊端分析.avi
│ 184-CMS垃圾回收器的参数设置.avi
│ 185-CMS的小结及后续JDK版本中的变化.avi
│ 186-认识G1垃圾回收器.avi
│ 187-G1垃圾回收器的优势和不足.avi
│ 188-G1的参数设置.avi
│ 189-G1在生产环境的适用场景.avi
│ 190-region的使用介绍.avi
│ 191-G1垃圾回收器的主要回收环节.avi
│ 192-记忆集与写屏障.avi
│ 193-G1垃圾回收过程的详细说明.avi
│ 194-G1垃圾回收的优化建议.avi
│ 195-7种经典的垃圾回收器总结与调优建议.avi
│ 196-常用的显示GC日志的参数.avi
│ 197-GC日志中垃圾回收数据的分析.avi
│ 198-举例说明日志中堆空间数据如何解读.avi
│ 199-日志分析工具的使用.avi
│ 200-新时期的Epsilon和Shenandoah垃圾回收器.avi
│ 201-革命性的ZGC的性能介绍.avi
│ 202-其他的厂商的垃圾回收器.avi
│ 203-最后寄语.avi
│
├─2.JVM中篇:字节码与类的加载篇
│ │ 代码.zip
│ │ 图示.zip
│ │ 课件.zip
│ │ 软件下载地址.txt
│ │
│ └─视频
│ ├─第十八章:Class文件结构
│ │ 01-JVM中篇内容概述.mp4
│ │ 02-字节码文件的跨平台性.mp4
│ │ 03-了解Java的前端编译器.mp4
│ │ 04-透过字节码看代码执行细节举例1.mp4
│ │ 05-透过字节码看代码执行细节举例2.mp4
│ │ 06-透过字节码看代码执行细节举例3.mp4
│ │ 07-解读Class文件的三种方式.mp4
│ │ 08-Class文件本质和内部数据类型.mp4
│ │ 09-Class文件内部结构概述.mp4
│ │ 10-字节码数据保存到excel中的操作.mp4
│ │ 11-Class文件的标识:魔数.mp4
│ │ 12-Class文件版本号.mp4
│ │ 13-常量池概述.mp4
│ │ 14-常量池计数器.mp4
│ │ 15-常量池表中的字面量和符号引用.mp4
│ │ 16-解析得到常量池中所有的常量.mp4
│ │ 17-常量池表数据的解读1.mp4
│ │ 18-常量池表数据的解读2.mp4
│ │ 19-常量池表项数据的总结.mp4
│ │ 20-访问标识.mp4
│ │ 21-类索引、父类索引、接口索引集合.mp4
│ │ 22-字段表集合的整体理解.mp4
│ │ 23-字段表数据的解读.mp4
│ │ 24-方法表集合的整体理解.mp4
│ │ 25-方法表数据的解读.mp4
│ │ 26-属性表集合的整理理解.mp4
│ │ 27-方法中Code属性的解读.mp4
│ │ 28-LineNumberTable和LocalVariableTable属性的解读.mp4
│ │ 29-SourceFile属性的解读.mp4
│ │ 30-Class文件结构的小结.mp4
│ │ 31-javac -g操作的说明.mp4
│ │ 32-javap主要参数的使用.mp4
│ │ 33-javap解析得到的文件结构的解读.mp4
│ │ 34-javap使用小结.mp4
│ │
│ ├─第十九章:字节码指令集与解析举例
│ │ 35-字节码指令集的概述.mp4
│ │ 36-指令与数据类型的关系及指令分类.mp4
│ │ 37-加载与存储指令概述.mp4
│ │ 38-再谈操作数栈与局部变量表.mp4
│ │ 39-局部变量压栈指令.mp4
│ │ 40-常量入栈指令.mp4
│ │ 41-出栈装入局部变量表指令.mp4
│ │ 42-算术指令及举例.mp4
│ │ 43-算法指令再举例.mp4
│ │ 44-彻底搞定++运算符.mp4
│ │ 45-比较指令的说明.mp4
│ │ 46-宽化类型转换.mp4
│ │ 47-窄化类型转换.mp4
│ │ 48-创建类和数组实例的指令.mp4
│ │ 49-字段访问指令.mp4
│ │ 50-数组操作指令.mp4
│ │ 51-类型检查指令.mp4
│ │ 52-方法调用指令.mp4
│ │ 53-方法返回指令.mp4
│ │ 54-操作数栈管理指令.mp4
│ │ 55-比较指令.mp4
│ │ 56-条件跳转指令.mp4
│ │ 57-比较条件跳转指令.mp4
│ │ 58-多条件分支跳转指令.mp4
│ │ 59-无条件跳转指令.mp4
│ │ 60-抛出异常指令.mp4
│ │ 61-异常处理与异常表.mp4
│ │ 62-同步控制指令.mp4
│ │
│ ├─第二十章:类的加载过程详解
│ │ 63-类的生命周期概述.mp4
│ │ 64-加载完成的操作及二进制的获取方式.mp4
│ │ 65-类模型与Class实例的位置.mp4
│ │ 66-链接之验证环节.mp4
│ │ 67-链接之准备环节.mp4
│ │ 68-链接之解析环节.mp4
│ │ 69-初始化过程与类初始化方法.mp4
│ │ 70-初始化阶段赋值与准备阶段赋值的对比.mp4
│ │ 71-类初始化方法clinit()的线程安全性.mp4
│ │ 72-何为类的主动使用和被动使用.mp4
│ │ 73-类的主动使用1.mp4
│ │ 74-类的主动使用2.mp4
│ │ 75-类的主动使用3.mp4
│ │ 76-类的主动使用4.mp4
│ │ 77-类的被动使用.mp4
│ │ 78-类的使用介绍.mp4
│ │ 79-类的卸载相关问题.mp4
│ │
│ └─第二十一章:再谈类的加载器
│ 80-类加载器的概述.mp4
│ 81-命名空间与类的唯一性.mp4
│ 82-类的加载器的分类.mp4
│ 83-引导类加载器的说明.mp4
│ 84-扩展类加载器的说明.mp4
│ 85-系统类加载器的说明.mp4
│ 86-用户自定义类加载器的说明.mp4
│ 87-测试不同类使用的类加载器.mp4
│ 88-ClassLoader与Launcher的初步剖析.mp4
│ 89-ClassLoader的源码解析1.mp4
│ 90-ClassLoader的源码解析2.mp4
│ 91-ClassLoader子类的结构剖析.mp4
│ 92-双亲委派机制的优势与劣势.mp4
│ 93-三次双亲委派机制的破坏.mp4
│ 94-热替换的代码实现.mp4
│ 95-沙箱安全机制.mp4
│ 96-自定义类加载器的好处和应用场景.mp4
│ 97-自定义类加载器的代码实现.mp4
│ 98-Java9的新特性.mp4
│
└─3.JVM下篇:性能监控与调优篇
│ 代码.zip
│ 图示.zip
│ 课件.zip
│ 软件.zip
│
└─视频
│
├─第二十二章:概述篇
│ 01-性能监控与调优篇概述.mp4
│ 02-见识一下大厂面试题.mp4
│ 03-为什么调优及监控的依据.mp4
│ 04-性能优化的三部曲.mp4
│ 05-4个性能测试指标及相关关系.mp4
│
├─第二十三章:JVM监控及诊断工具-命令行篇
│ 06-JVM命令行监控工具的概述.mp4
│ 07-jps:查看正在运行的Java进程.mp4
│ 08-jstat:基本语法.mp4
│ 09-jstat:如何排查OOM和内存泄漏.mp4
│ 10-jinfo:实时查看和修改JVM配置参数.mp4
│ 11-PrintFlagsFinal的使用.mp4
│ 12-jmap:各种option参数说明.mp4
│ 13-导出dump堆转储快照文件的两种方式.mp4
│ 14-jmap:如何显示堆内存等功能.mp4
│ 15-jhat:JDK自带堆分析工具.mp4
│ 16-jstack:追踪JVM中线程快照.mp4
│ 17-jcmd:多功能命令行工具.mp4
│ 18-jstatd:远程主机信息收集.mp4
│
├─第二十四章:JVM监控及诊断工具-GUI篇
│ 19-JVM监控及诊断的GUI工具概述.mp4
│ 20-jConsole的使用.mp4
│ 21-VisualVM的安装及连接方式.mp4
│ 22-VisualVM的基本功能.mp4
│ 23-VisualVM生成和查看堆dump文件.mp4
│ 24-Visual生成和分析线程dump文件.mp4
│ 25-VisualVM的CPU抽样和内存抽样.mp4
│ 26-MAT概述_获取dump的四种方式.mp4
│ 27-MAT界面主要功能概览.mp4
│ 28-MAT中Histogram的功能演示.mp4
│ 29-基于对象的出引用与入引用分析内存泄漏.mp4
│ 30-ShallowHeap与RetainedHeap.mp4
│ 31-案例分析:StudentTrace.mp4
│ 32-支配树的理解及应用.mp4
│ 33-案例:Tomcat堆溢出分析.mp4
│ 34-内存泄漏的理解与分类.mp4
│ 35-内存泄漏的8种情况.mp4
│ 36-内存泄漏分析案例1.mp4
│ 37-内存泄漏分析案例2.mp4
│ 38-OQL语句的使用举例.mp4
│ 39-JProfiler的使用概述.mp4
│ 40-JProfiler的安装和配置.mp4
│ 41-两种数据采集方式.mp4
│ 42-遥感监测视图中相关监测数据.mp4
│ 43-内存视图的分析.mp4
│ 44-Heap Walker功能演示.mp4
│ 45-CPU视图的功能说明.mp4
│ 46-Threads视图的功能说明.mp4
│ 47-JProfiler使用案例1.mp4
│ 48-JProfiler使用案例2.mp4
│ 49-为什么要引入Arthas.mp4
│ 50-Arthas的安装及对Java进程的监控.mp4
│ 51-Arthas中基础指令的使用.mp4
│ 52-dashboard命令和thread命令.mp4
│ 53-sysprop命令和heapdump命令.mp4
│ 54-sc命令和sm命令.mp4
│ 55-jad命令_mc命令_classloader命令.mp4
│ 56-monitor_watch_trace_stack_tt命令.mp4
│ 57-Arthas的其它相关命令.mp4
│ 58-JMC介绍_实时JVM监控.mp4
│ 59-Java Flight Recorder介绍和取样分析.mp4
│ 60-火焰图的使用介绍.mp4
│ 61-Tprofiler等工具的介绍.mp4
│
├─第二十五章:JVM运行时参数
│ 62-JVM参数选项类型1:标准参数选项.mp4
│ 63-JVM参数选项类型2:-X参数选项.mp4
│ 64-JVM参数选项类型3:-XX参数选项.mp4
│ 65-如何添加JVM参数选项的说明.mp4
│ 66-打印设置的XX选项及值.mp4
│ 67-栈、堆、方法区内存的相关VM参数选项设置.mp4
│ 68-OutOfMemory相关VM参数选项的设置.mp4
│ 69-回顾经典的GC及相互搭配关系.mp4
│ 70-不同垃圾回收器的VM参数选项设置.mp4
│ 71-GC日志相关VM参数选项的设置.mp4
│ 72-了解其他VM参数选项.mp4
│ 73-通过Java代码获取JVM参数.mp4
│
└─第二十六章:分析GC日志
74-复习GC的分类.mp4
75-GC日志的分类.mp4
76-MinorGC的日志解析.mp4
77-FullGC的日志解析.mp4
78-在线日志分析工具:GCEasy.mp4
79-其它日志分析工具:GCViewer、GChisto、HPjmeter.mp4
80-OOM及性能优化案例与解决方案.mp4