走进Java虚拟机
文章平均质量分 95
虚拟机技术文章
J3code
B站up:J3code
展开
-
面试官:说说虚拟机中的七大垃圾收集器吧!(上)
J3 -白起Java虚拟机 # 垃圾收集器(上)停更有一段时间了,一直没有时间再去读《深入理解Java虚拟机》一书(虽然生活,工作都很忙,但这都是偷懒的借口),所以难得这一两天周末不忙,就又重新拾起了这本书读起来了,才有了这篇文章。里面有我的理解也有书中的原话当然也有我网上找的资料(我下面用注明????),希望你们看着不会很晦涩,那开始吧!上面展示了七种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用,下面我将具体的介绍上面的七种垃圾收集器。不过在介绍之前我要给大家明原创 2021-03-07 15:18:18 · 357 阅读 · 1 评论 -
聊聊虚拟机的垃圾回收算法细节问题-根节点枚举、安全点、安全区、记忆集与卡表、写屏障、并发可达性分析中的三色标记法
J3-白起本篇涉及的内容点主要是讲述了虚拟机如何快速的枚举出GCRoot,如何加速回收内存和如何安全的保证回收内存,虽然这部分的东西很晦涩本人也是花费了大量的时间才有所领略,但如果耐心的看下去的话我相信对小伙伴们的收获还是非常大的并且本人为了方便理解还特意亲手绘制了非常多的图来帮助大家理解,那么我们就开始吧!一、根节点枚举虚拟机搜索GCRoot的流程图解:根节点枚举就是找出适合做GCRoot的引用对象。枚举出这些个GC Root我们需要考虑到这个分析过程所产生结果的准确性及枚举效率,也..原创 2021-01-28 10:40:10 · 1183 阅读 · 1 评论 -
一文看懂虚拟机中的四大垃圾收集算法
J3-白起通过上篇的内容,相信大家对Java对象的认定死亡机制有了深刻的理解。那么我们趁热打铁来看看确定了垃圾对象之后,虚拟机会对这部分内存上的死亡对象做什么相关操作。本篇将会给大家介绍虚拟机的垃圾回收算法,这也是虚拟机中各种垃圾收集器的理论依据。只有先掌握垃圾回收的算法才能更好的去理解虚拟机中各种复杂的垃圾收集器,那么让我们愉快的开始学习把!一、分代收集算法当前主流的虚拟机都是采用分代收集算法,然而分代收集算法并不是一个具体的算法,而是一个分代收集的理论。它是一套符合大多数程序运行实际..原创 2021-01-09 19:25:01 · 409 阅读 · 2 评论 -
一文看懂虚拟机中Java对象的生死判别
j3_liuliang通过上面两篇的介绍,相信大家已经知道虚拟机的内存布局和对象创建的过程及在虚拟机中的分布的,那么一个对象创建出来是不可能永生的总会有死亡的时候而虚拟机是如何判定一个对象的生死那就要看本篇博主给你们带来的内容了,虚心、耐心、好奇心的看下去肯定有收获的。一、概述在虚拟机中要回收对象(垃圾回收)需要知道三件事:那些对象需要回收?什么时候回收?如何回收?我们来回忆一下虚拟机的运行时数据区:程序计数器(私有)、虚拟机栈(私有)、本地方法栈(私有)、Java堆(共享)和..原创 2021-01-05 08:24:13 · 370 阅读 · 1 评论 -
一篇认清HotSpot虚拟机对象创建、内存布局及访问定位
j3_liuliang老是调侃没有对象就自己new一个对象呗!以前我是经常这样干,不过new对象供我们使用(不要想歪了)相对于我们来说很简单,但你有没有想过你使用的对象(Object)是如何被创建出来的,今天这篇我们就来讨论一个对象是如何被虚拟机创建并供我们使用的;在上篇我们认清了Java虚拟机的运行时数据区(没看过的可以点这里)知道了什么地方放什么类型的数据,那相信小伙伴因该是知道我们经常用的对象几乎都是在堆中创建并分配内存的(本人用了“几乎”一词,不考虑逃逸分析和标量替换的情况),别高兴得太..原创 2020-12-25 18:55:10 · 427 阅读 · 0 评论 -
一篇认清Java虚拟机运行时数据区
j3_liuliang今天来和大家唠唠这个Java虚拟机,这段时间都是在看底层类的东西,逻辑性太强了,不多动动小手总结的话怕辛辛苦苦学到的东西,一夜就烟消云散了;说起虚拟机,我天真的以为是VMware虚拟机(这面子丢大了,想个法子找回来);本身就是走Java方向的,不了解Java虚拟机那就愧对这条路了,所以这段时间就有事没事的摸鱼(别学我,我是完成工作闲暇之时)看书。不过不知道你们离开学校,步入社会之后还有没有学生时代那种看书一看就是一下午或者几个小时,还贼精神得那种状态,反正我没有。你看哈!..原创 2020-12-18 14:40:32 · 390 阅读 · 0 评论