JVM从入门到精通
文章平均质量分 94
尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)学习笔记
VectorUx
CV攻城狮
展开
-
<JVM上篇:内存与垃圾回收篇>13-垃圾回收器
13. 垃圾回收器13.1. GC分类与性能指标13.1.1. 垃圾回收器概述13.1.2. 垃圾收集器分类13.1.3. 评估GC的性能指标吞吐量暂停时间吞吐量 vs 暂停时间13.2. 不同的垃圾回收器概述13.2.1. 垃圾回收器发展史13.2.2. 7种经典的垃圾收集器13.2.3. 7款经典收集器与垃圾分代之间的关系13.2.4. 垃圾收集器的组合关系13.2.5. 不同的垃圾收集器概述13.2.6. 如何查看默认垃圾收集器13.3. Serial回收器:串行回收1转载 2021-05-12 20:52:21 · 1328 阅读 · 5 评论 -
<JVM上篇:内存与垃圾回收篇>12-垃圾回收相关概念
12. 垃圾回收相关概念12.1. System.gc()的理解12.2. 内存溢出与内存泄露内存溢出(OOM)内存泄漏(Memory Leak)12.3. Stop The World12.4. 垃圾回收的并行与并发并发(Concurrent)并行(Parallel)并发 vs 并行垃圾回收的并发与并行并行(Parallel)串行(Serial)并发(Concurrent)12.5. 安全点与安全区域安全点抢先式中断:(目前没有虚拟机采用了)主动式中断安全区域(Safe转载 2021-05-12 20:29:59 · 940 阅读 · 0 评论 -
<JVM上篇:内存与垃圾回收篇>11-垃圾回收概述及算法
垃圾回收概述及算法11.1. 垃圾回收概述11.1.1. 什么是垃圾?什么是垃圾?11.1.2. 为什么需要GC11.1.3. 早期垃圾回收11.1.4. Java垃圾回收机制担忧GC主要关注的区域11.2. 垃圾回收相关算法11.2.1. 标记阶段:引用计数算法方式一:引用计数算法循环引用小结11.2.2. 标记阶段:可达性分析算法可达性分析算法(根搜索算法、追踪性垃圾收集)基本思路11.2.3. 对象的finalization机制生存还是死亡?具体过程11.2.4转载 2021-05-12 20:28:55 · 767 阅读 · 0 评论 -
<JVM上篇:内存与垃圾回收篇>10-StringTable
10.1. String的基本特性10.1.1. String在jdk9中存储结构变更MotivationDescription10.1.2. String的基本特性10.2. String的内存分配10.3. String的基本操作10.4. 字符串拼接操作10.5. intern()的使用10.5.1. intern的使用:JDK6 vs JDK7/810.5.2. intern的效率测试:空间角度10.6. StringTable的垃圾回收10.7. G1中的String去重操转载 2021-05-11 22:05:36 · 731 阅读 · 1 评论 -
<JVM上篇:内存与垃圾回收篇>09-执行引擎
9.1. 执行引擎概述9.1.1. 执行引擎的工作流程9.2. Java代码编译和执行过程9.2.1. 什么是解释器(Interpreter)?什么是JIT编译器?9.2.2. 为什么Java是半编译半解释型语言?9.3. 机器码、指令、汇编语言9.3.1. 机器码9.3.2. 指令9.3.3. 指令集9.3.4. 汇编语言9.3.5. 高级语言C、C++源程序执行过程9.3.6. 字节码9.4. 解释器9.4.1. 解释器工作机制9.4.2. 解释器分类9.4.3. 现状转载 2021-05-11 22:04:20 · 915 阅读 · 0 评论 -
<JVM上篇:内存与垃圾回收篇>08-对象实例化及直接内存
8. 对象实例化及直接内存8.1. 对象实例化8.1.1. 创建对象的方式8.1.2. 创建对象的步骤8.2. 对象内存布局8.2.1. 对象头(Header)8.2.2. 实例数据(Instance Data)8.2.3. 对齐填充(Padding)8.3. 对象的访问定位转载 2021-05-10 23:28:13 · 837 阅读 · 0 评论 -
<JVM上篇:内存与垃圾回收篇>07-方法区
笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)7. 方法区7.1. 栈、堆、方法区的交互关系7.2. 方法区的理解7.2.1. 方法区在哪里?7.2.2. 方法区的基本理解7.2.3. HotSpot中方法区的演进7.3. 设置方法区大小与OOM7.3.1. 设置方法区内存的大小7.3.2. 如何解决这些OOM7.4. 方法区的内部结构7.4.1. 方法区(Method Area)存储什么?7.4.2. 方法区的内部结构转载 2021-05-10 20:13:22 · 994 阅读 · 0 评论 -
<JVM上篇:内存与垃圾回收篇>06-堆
6.1. 堆(Heap)的核心概述6.1.1. 堆内存细分6.1.2. 堆空间内部结构(JDK7)6.1.3. 堆空间内部结构(JDK8)6.2. 设置堆内存大小与OOM6.2.1. 堆空间大小的设置6.2.2. OutOfMemory举例6.3. 年轻代与老年代6.4. 图解对象分配过程6.5. Minor GC,MajorGC、Full GC6.5.1. 最简单的分代式GC策略的触发条件年轻代GC(Minor GC)触发机制老年代GC(Major GC / Full GC)触发机转载 2021-05-10 20:11:47 · 1153 阅读 · 0 评论 -
<JVM上篇:内存与垃圾回收篇>05-本地方法接口和本地方法栈
笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)同步更新:https://gitee.com/vectorx/NOTE_JVMhttps://codechina.csdn.net/qq_35925558/NOTE_JVMhttps://github.com/uxiahnan/NOTE_JVM文章目录5. 本地方法接口和本地方法栈5.1. 什么是本地方法?5.2. 为什么使用Native Method?5.2. 本地方法栈5. 本地方法接口和本地方法栈5.1. 什.转载 2021-05-09 21:12:36 · 410 阅读 · 0 评论 -
<JVM上篇:内存与垃圾回收篇>04-虚拟机栈
笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)同步更新:https://gitee.com/vectorx/NOTE_JVMhttps://codechina.csdn.net/qq_35925558/NOTE_JVMhttps://github.com/uxiahnan/NOTE_JVM文章目录4. 虚拟机栈4.1. 虚拟机栈概述4.1.1. 虚拟机栈出现的背景4.1.2. 初步印象4.1.3. 内存中的栈与堆4.1.4. 虚拟机栈基本内容Java虚拟机栈是什么.转载 2021-05-09 21:11:59 · 1273 阅读 · 0 评论 -
<JVM上篇:内存与垃圾回收篇>03-运行时数据区及程序计数器
笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)同步更新:https://gitee.com/vectorx/NOTE_JVMhttps://codechina.csdn.net/qq_35925558/NOTE_JVMhttps://github.com/uxiahnan/NOTE_JVM文章目录3. 运行时数据区及程序计数器3.1. 运行时数据区3.1.1. 概述3.1.2. 线程3.1.3. JVM系统线程3.2. 程序计数器(PC寄存器)3. 运行时数据区.转载 2021-05-09 21:11:11 · 739 阅读 · 0 评论 -
<JVM上篇:内存与垃圾回收篇>02-类加载子系统
2. 字节码指令集2.1. 概述2.1.1. 执行模型2.1.2. 字节码与数据类型2.1.3. 指令分析2.2. 加载与存储指令2.2.1. 作用2.2.2. 常用指令2.2.3. 再谈操作数栈与局部变量表2.2.4. 局部变量压栈指令2.2.2. 常量入栈指令2.2.3. 出栈装入局部变量表指令2.3. 算术指令2.3.1. 作用2.3.2. 分类2.3.3. byte、short、char和boolean类型说明2.3.4. 运算时的溢出2.3.5. 运算模式2.3转载 2021-05-07 22:42:35 · 1101 阅读 · 2 评论 -
<JVM上篇:内存与垃圾回收篇>01-JVM与Java体系结构
笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)同步更新:https://gitee.com/vectorx/NOTE_JVMhttps://codechina.csdn.net/qq_35925558/NOTE_JVMhttps://github.com/uxiahnan/NOTE_JVM文章目录1.JVM与Java体系结构1.1. 前言1.2. 面向人群及参考书目1.3. Java及JVM简介1.4. Java发展的重大事件1.5. 虚拟机与Java虚拟机1.6.转载 2021-05-07 12:37:16 · 1242 阅读 · 0 评论 -
<JVM下篇:性能监控与调优篇>05-分析GC日志
https://gitee.com/vectorx/NOTE_JVMhttps://codechina.csdn.net/qq_35925558/NOTE_JVMhttps://github.com/uxiahnan/NOTE_JVM文章目录5. 分析GC日志5.1. GC分类5.2. GC日志分类5.3. GC日志结构剖析5.4. GC日志分析工具5. 分析GC日志5.1. GC分类针对HotSpot VM的实现,它里面的GC按照回收区域又分为两大种类型:一种是部分收集(Partial G.原创 2021-05-06 22:08:16 · 680 阅读 · 0 评论 -
<JVM下篇:性能监控与调优篇>04-JVM运行时参数
https://gitee.com/vectorx/NOTE_JVMhttps://codechina.csdn.net/qq_35925558/NOTE_JVMhttps://github.com/uxiahnan/NOTE_JVM文章目录4. JVM运行时参数4.1. JVM参数选项4.1.1. 类型一:标准参数选项4.1.2. 类型二:-X参数选项4.1.3. 类型三:-XX参数选项4.2. 添加JVM参数选项4.3. 常用的JVM参数选项4.3.1. 打印设置的XX选项及值4.3.2. 堆.转载 2021-05-06 22:06:39 · 565 阅读 · 0 评论 -
<JVM从入门到精通>导航
JVM上篇:内存与垃圾回收篇JVM中篇:字节码与类的加载篇JVM下篇:性能监控与调优篇原创 2021-05-05 20:33:21 · 1693 阅读 · 0 评论 -
<JVM下篇:性能监控与调优篇>补充:使用OQL语言查询对象信息
https://gitee.com/vectorx/NOTE_JVMhttps://codechina.csdn.net/qq_35925558/NOTE_JVMhttps://github.com/uxiahnan/NOTE_JVM文章目录补充:使用OQL语言查询对象信息1. SELECT子句2. FROM子句3. WHERE子句4. 内置对象与方法补充:使用OQL语言查询对象信息MAT支持一种类似于SQL的查询语言OQL(Object Query Language)。OQL使用类SQL语法.原创 2021-05-05 20:16:40 · 641 阅读 · 1 评论 -
<JVM下篇:性能监控与调优篇>补充:浅堆深堆与内存泄露
1. 浅堆(Shallow Heap)2. 保留集(Retained Set)3. 深堆(Retained Heap)4. 对象的实际大小5. 支配树(Dominator Tree)6. 内存泄漏(memory leak)7. 内存溢出(out of memory)8. Java中内存泄露的8种情况8.1. 静态集合类8.2. 单例模式8.3. 内部类持有外部类8.4. 各种连接,如数据库连接、网络连接和IO连接等8.5. 变量不合理的作用域8.6. 改变哈希值8.7. 缓存泄露原创 2021-05-05 20:15:12 · 716 阅读 · 0 评论 -
<JVM下篇:性能监控与调优篇>03-JVM监控及诊断工具-GUI篇
3. JVM监控及诊断工具-GUI篇3.1. 工具概述3.2. JConsole3.3. Visual VM3.4. Eclipse MAT3.5. JProfiler3.6. Arthas3.7. Java Misssion Control3.8. 其他工具.原创 2021-05-05 20:13:25 · 962 阅读 · 2 评论 -
<JVM下篇:性能监控与调优篇>01-概述篇-02-JVM监控及诊断工具-命令行篇
1. 概述篇1.1. 大厂面试题1.2. 背景说明1.3. 调优概述1.4. 性能优化的步骤1.5. 性能评价/测试指标2. JVM监控及诊断工具-命令行篇2.1. 概述2.2. jps:查看正在运行的Java进程2.3. jstat:查看JVM统计信息2.4. jinfo:实时查看和修改JVM配置参数2.5. jmap:导出内存映像文件&内存使用情况2.6. jhat:JDK自带堆分析工具2.7. jstack:打印JVM中线程快照2.8. jcmd:多功能命令行2.9. j原创 2021-05-04 21:52:43 · 1558 阅读 · 0 评论 -
<JVM中篇:字节码与类的加载篇>04-再谈类的加载器
https://gitee.com/vectorx/NOTE_JVMhttps://codechina.csdn.net/qq_35925558/NOTE_JVMhttps://github.com/uxiahnan/NOTE_JVM文章目录1. 概述1.1. 大厂面试题1.2. 类加载器的分类1.3. 类加载器的必要性1.4. 命名空间1.5. 类加载机制的基本特征1.6. 类加载器之间的关系2. 类的加载器分类2.1. 引导类加载器2.2. 扩展类加载器2.3. 系统类加载器2.4. 用户自定.原创 2021-05-01 19:49:46 · 1015 阅读 · 0 评论 -
<JVM中篇:字节码与类的加载篇>03-类的加载过程(类的生命周期)详解
https://gitee.com/vectorx/NOTE_JVMhttps://codechina.csdn.net/qq_35925558/NOTE_JVMhttps://github.com/uxiahnan/NOTE_JVM文章目录1. 概述大厂面试题2. 过程一:Loading(加载)阶段2.1. 加载完成的操作2.2. 二进制流的获取方式2.3. 类模型与Class实例的位置2.4. 数组类的加载3. 过程二:Linking(链接)阶段3.1. 环节1:链接阶段之Verificati.原创 2021-05-01 01:30:20 · 1371 阅读 · 1 评论 -
<JVM中篇:字节码与类的加载篇>02-字节码指令集
https://gitee.com/vectorx/NOTE_JVMhttps://codechina.csdn.net/qq_35925558/NOTE_JVMhttps://github.com/uxiahnan/NOTE_JVM1. 概述2. 加载与存储指令2.1. 局部变量压栈指令iload 从局部变量中装载int类型值lload 从局部变量中装载long类型值fload 从局部变量中装载float类型值dload 从局部变量中装载double类型值aload 从局.原创 2021-04-26 00:13:58 · 1574 阅读 · 0 评论 -
<JVM中篇:字节码与类的加载篇>01-Class字节码文件结构
Class文件结构1. Class字节码文件结构 类型 名称 说明 长度 数量 魔数 u4 magic 魔数,识别Class文件格式 4个字节原创 2021-04-24 22:52:26 · 2349 阅读 · 0 评论