JVM
文章平均质量分 94
jvm学习
明心1994
这个作者很懒,什么都没留下…
展开
-
JVM学习(三)垃圾回收(Garbage Collect)、垃圾回收算法、垃圾收集器
在上次的学习中 我们把关注点一步一步转移到了方法区和堆中,而堆我们也详细的分析了一下,如果说到JVM优化,那么堆的优化肯定是首当其冲的,所以我们也不难想到垃圾回收 什么样的对象能称之为“垃圾” 引用计数法 对于某个对象而言,只要应用程序中持有该对象的引用,就说明该对象不是垃圾,如果一个对象没有任何指针对其 引用,它就是垃圾。 弊端:如果两个对象相互引用,则会导致永远无法回收。 可达性分析 通过GC Root的对象,开始向下寻找,看某个对象是否可达,如果可达则不是垃圾。 能作为GC Root的对象:类加载器原创 2021-02-03 10:42:44 · 232 阅读 · 0 评论 -
JVM学习(二)深入了解运行时数据区(方法区、堆、虚拟机栈)
在上一次学习中我们已经知道了运行时数据区包含了:方法区、堆、虚拟机栈、本地方法栈、程序计数器这五个部分,那么我们到底要学习什么呢? 我认为本地方法栈和程序计数器是没有必要学习的,或者说已经超出了java领域,那么我们就把重点放在其他三个领域,方法区和堆是存储数据的,虚拟机栈则是对应执行方法的时候过程,想到这我就很激动,我们每次写完一个方法到底是在虚拟机中如何运行的? 每个java方法中需要包含什么内容 官网给出的信息是这样讲的:java虚拟机栈压的其实是每一个的栈帧,而栈帧里面包含了:局部变量表(Loca原创 2021-01-31 18:01:10 · 134 阅读 · 0 评论 -
JVM学习(一)如何从类文件开始学习类加载机制(双亲委派)、运行时数据区
写在前面 官网经典图的简单介绍 下面是我在jdk8官网上截的一张图,这张图充分的说明了JDK、JRE、JVM三者之间的关系,可以到JDK所在的位置是超级包含了JRE,而JRE又包含了JVM,同时能看出来JDK为开发者提供了很多的工具供开发者使用,JRE为我们提供了很多的类库提供了运行的支撑,JVM是我们的代码能运行在各操作系统上的支撑。 要怎么学习? 现在我所停留的阶段是在JDK层面,即使用层面,那如何走进JVM呢?,我想我还是应该再我最熟悉的领域开始,然后一步一步走到最深处,所以宏观来看需要4个原创 2021-01-27 11:17:11 · 377 阅读 · 3 评论