![](https://img-blog.csdnimg.cn/20201008231613911.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
JVM
深入浅出的让你更加的理解JVM
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
刘架构
我从不给自己退路
展开
-
第十六章: 千寻 -垃圾回收器完结篇
文章目录第 17 章 垃圾回收器1、GC 分类与性能指标1.1、垃圾回收器概述与分类1.2、评估 GC 的性能指标2、不同的垃圾回收器概述2.1、垃圾收集器发展史2.2、7 种经典的垃圾收集器2.3、垃圾收集器的组合关系2.4、查看默认垃圾收集器3、Serial 回收器:串行回收器3.1、Serial 回收器3.2、Serial 回收器的优势3.3、设置 Serial 垃圾回收器4、PaeNew 回收器:并行回收4.1、PaeNew 回收器4.2、ParNew 与 Serial 比较4.3、设置 ParNe原创 2020-10-10 23:50:29 · 2280 阅读 · 0 评论 -
第十五章: 菱悦 -垃圾回收GC详解
第 15章 垃圾回收GC详解文章目录第 15章 垃圾回收GC详解1、System.gc() 的理解1.1、System.gc() 方法1.2、不可达对象回收行为2、内存溢出与内存泄漏2.1、内存溢出2.2、内存泄漏3、Stop the World4、垃圾回收的并行与并发4.1、并发的概念4.2、并行的概念4.3、垃圾回收的并行与串行4.4、垃圾回收的并发5、安全点与安全区域6、再谈引用:强引用7、再谈引用:软引用8、再谈引用:弱引用9、再谈引用:虚引用10、再谈引用:终结器引用微信搜一搜: 全栈小刘,原创 2020-10-10 23:46:18 · 329 阅读 · 0 评论 -
第十四章: 风空-垃圾回收概述
文章目录第 14 章 垃圾回收概述1、垃圾收集面试题2、为什么需要GC3、早期垃圾回收4、Java 垃圾回收机制4.1、自动内存管理4.2、GC 的作用域第 14 章 垃圾回收概述1、垃圾收集面试题回顾 JVM 学习路线关于垃圾收集Java 和 C++语言的区别,就在于垃圾收集技术和内存动态分配上,C语言没有垃圾收集技术,需要我们手动的收集。垃圾收集,不是Java语言的伴生产物。早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生。关于垃圾收集有三个经典问题:原创 2020-10-10 23:42:24 · 239 阅读 · 0 评论 -
第十三章: 尘封 -StringTable详解
文章目录第 13 章 StringTable1、String 的基本特性1.1、String 概述1.2、String 的基本特征1.3、String 的底层结构2、String 的内存分配2.1、String 内存分配演进过程2.2、为什么要调整 String 位置3、String 的基本操作4、字符串拼接操作4.1、符串拼接操作的结论4.2、字符串拼接的底层细节5、intern() 的使用5.1、intern() 方法的说明5.2、new String() 的说明5.3、有点难的面试题5.4、inter原创 2020-10-10 23:40:11 · 475 阅读 · 0 评论 -
第十二章: 相视-细讲执行引擎
文章目录第 12 章 执行引擎1、执行引擎概述1.1、执行引擎概述1.2、执行引擎工作过程2、Java 代码编译和执行过程2.1、解释执行和即时编译2.2、解释器和编译器3、机器码 指令 汇编语言3.1、机器码3.2、指令和指令集3.3、汇编语言3.4、高级语言3.5、程序编译流程3.6、字节码4、解释器4.1、为什么要有解释器4.2、解释器的分类4.3、解释器的现状5、JIT 编译器5.1、为什么还需要解释器5.2、即时编译器的案例5.3、编译器相关概念5.4、热点代码及探测方式5.4.1、方法调用计数器原创 2020-10-10 08:57:33 · 1582 阅读 · 0 评论 -
第十一章:深思-虚拟机栈
文章目录第 11 章 直接内存1、直接内存概述2、BIO 与 NIO3、直接内存与 OOM微信搜一搜: 全栈小刘,获取文章全套 pdf版第 11 章 直接内存1、直接内存概述直接内存不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。直接内存是在Java堆外的、直接向系统申请的内存区间。来源于NIO,通过存在堆中的DirectByteBuffer操作Native内存通常,访问直接内存的速度会优于Java堆。即读写性能高。因此出于性能考虑,读写频繁的场合可原创 2020-10-10 08:53:14 · 140 阅读 · 0 评论 -
第十章: 重生-对象的实例化-内存布局
文章目录第 10 章 对象的实例化内存布局与访问定位1、对象的实例化1.1、对象创建的方式1.2、对象创建的步骤2、对象的内存布局2.1、对象头2.2、实例数据2.3、对齐填充3、对象的访问定位第 10 章 对象的实例化内存布局与访问定位微信搜一搜: 全栈小刘,获取文章全套 pdf版1、对象的实例化大厂面试题美团:对象在 JVM中是怎么存储的?对象头信息里面有哪些东西?蚂蚁金服:二面: java对象头里有什么对象实例化1.1、对象创建的方式对象创建的方式ne原创 2020-10-10 08:38:35 · 205 阅读 · 0 评论 -
第九章: 涅槃-细讲方法区
文章目录第 9 章 方法区1、栈 堆 方法区的交互关系2、方法区的理解2.1、方法去的位置2.2、方法区的理解2.3、方法区演进过程3、设置方法区大小与 OOM3.1、JDK7 永久代3.2、JDK8 元空间3.3、方法区 OOM3.4、解决 OOM4、方法区的内部结构4.1、方法区结构4.2、域信息特殊情况4.3、运行时常量池5、方法区的使用举例6、方法区演进细节6.1、永久代演进过程6.2、元空间出现原因6.3、字符串常量池6.4、静态变量位置7、方法区的垃圾回收8、运行时数据区总结9、大场面试题第原创 2020-10-10 08:34:43 · 269 阅读 · 1 评论 -
第八章: 绝境-堆
文章目录第 8 章 堆1、堆的核心概述1.1、认识堆内存1.2、查看堆内存1.3、堆内存分区2、设置堆内存大小与 OOM2.1、设置堆内存2.2、OOM 举例3、年轻代与老年代3.1、Java 对象分类3.2、配置新老比例4、图解对象分配过程4.1、对象分配过程4.2、图解对象分配4.3、特殊情况说明4.4、常用调优工具5、GC 垃圾回收器5.1、分代收集思想5.2、Young GC5.3、Major/Full GC6、堆空间分代思想7、内存分配策略8、为对象分配内存8.1、为什么有 TLAB8.2、什么是原创 2020-10-09 23:29:55 · 419 阅读 · 0 评论 -
第七章: 灵渊-本地方法栈详解
第 7 章 本地方法栈1、本地方法栈本地方法栈的特点Java虚拟机栈于管理Java方法的调用,而本地方法栈用于管理本地方法的调用。本地方法栈,也是线程私有的。允许被实现成固定或者是可动态扩展的内存大小(在内存溢出方面和虚拟机栈相同)如果线程请求分配的栈容量超过本地方法栈允许的最大容量,Java虚拟机将会抛出一个stackoverflowError 异常。如果本地方法栈可以动态扩展,并且在尝试扩展的时候无法申请到足够的内存,或者在创建新的线程时没有足够的内存去创建对应的本地方法栈,那么J原创 2020-10-09 23:27:36 · 225 阅读 · 0 评论 -
第六章: 诀别-本地方法接口详解
微信搜一搜: 全栈小刘,获取文章全套 pdf版文章目录第 6 章 本地方法接口1、本地方法第 6 章 本地方法接口1、本地方法什么是本地方法?简单地讲, 一个Native Method是一个Java调用非Java代码的接囗一个Native Method是这样一个Java方法:该方法的实现由非Java语言实现,比如C。这个特征并非Java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern 告知C++编译器去调用一个C的函数。“A native method.原创 2020-10-09 23:23:52 · 1031 阅读 · 0 评论 -
第五章:断翼-虚拟机栈
文章目录1、虚拟机栈概述1.1、虚拟机栈的出现背景1.2、虚拟机栈的存储内容1.3、虚拟机栈的特点1.4、虚拟机栈的异常1.5、设置栈内存大小2、栈的存储单位2.1、栈的运行原理2.2、栈的内部结构3、局部变量表3.1、认识局部变量表3.2、关于 Slot 的理解3.3、Slot 的重复利用4、操作数栈4.1、操作数栈的特点4.2、操作数栈的作用5、代码追踪6、栈顶缓存技术7、动态链接8、解析和分派8.1、静态链接与动态链接8.2、早期绑定与晚期绑定8.3、多态性与方法绑定8.4、方法重写的本质8.5、多态原创 2020-10-09 23:21:45 · 1094 阅读 · 0 评论 -
第四章:渐深-程序计数器
第 4 章 程序计数器微信搜一搜: 全栈小刘,获取文章全套 pdf版1、PC 寄存器概述文档网址https://docs.oracle.com/javase/specs/jvms/se8/html/index.htmlPC 寄存器介绍JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器, 寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。这里,并非是广义上所指的物理寄存器,或许将其翻译为PC原创 2020-10-09 23:20:23 · 191 阅读 · 0 评论 -
第三章:缘尽-运行时数据区概述及线程
文章目录第 3 章 运行时数据区概述及线程1、前言2、运行时数据区结构2.1、运行时数据区与内存2.2、线程的内存空间3、线程3.1、JVM 线程3.2、JVM 系统线程第 3 章 运行时数据区概述及线程1、前言本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段当我们通过前面的:类的加载 --> 验证 --> 准备 --> 解析 --> 初始化,这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们运行时数据区也就是大厨做原创 2020-10-08 23:24:49 · 2857 阅读 · 0 评论 -
第二章:渐入-类加载器详解
第2 章 类加载器详解1、内存结构概述如果自己想手写一个Java虚拟机的话,主要考虑哪些结构呢?类加载器执行引擎完整框图:2、类加载子系统类加载器子系统作用类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串原创 2020-10-08 23:23:20 · 480 阅读 · 0 评论 -
第一章:缘起-初识JVM发展
文章目录第 1 章 JVM 和 Java 体系架构1、JVM 前言2、开发人员的病态3、架构师在想甚么4、为什么学习 JVM5、Java VS C++6、参考书籍7、课程章节8、TIOBE 排行榜9、Java 生态圈10、Java的跨平台性11、字节码12、多语言混合编程13、自己写个 JVM14、Java 重大事件15、虚拟机介绍15.1、虚拟机概念15.2、Java 虚拟机16、JVM 的位置17、Java 的整体结构18、Java 代码执行流程19、JVM 架构模型19.1、基于栈的指令集架构19.2原创 2020-10-08 23:20:17 · 2629 阅读 · 0 评论