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 · 2281 阅读 · 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 · 141 阅读 · 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 · 206 阅读 · 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.html PC 寄存器介绍 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 评论