![](https://img-blog.csdnimg.cn/910d1e824ed24ec196f3182cd369da27.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
JVM
文章平均质量分 96
JVM 相关知识以及实战博文一一到位讲解
vnjohn
vnjohn,博主名字的简写,是一名专注于后端领域的程序猿,借用歌名“自己”里的歌词来时刻提醒自己要不断学习,不断思而前行:“第一要保持希望在每天清晨太阳升起,第二切记不要与自身的平凡为敌,第三与自己所处的现在促膝长谈”
展开
-
标记垃圾,有三种色彩:四千长文带你深入了解三色标记算法
该篇博文主要介绍了 CMS、G1 在「并发标记」阶段共同使用到的一种算法:三色标记算法,简要说明了它的多标问题,重点介绍了在使用其算法时会发生的漏标问题,有两种方式可以用来解决这种问题:增量更新、原始快照,CMS 使用的是前者,G1 使用的后者,最后对这两种不同解决方案方式作了一下对比,希望此博文你能够喜欢!原创 2023-08-13 16:24:21 · 5427 阅读 · 76 评论 -
优化内存利用:深入了解垃圾回收算法与回收器
该篇博文是从周志明教授编写的《深入理解 Java 虚拟机》巨著里面的内容结合自身的一些理解,整理出来的一些内容,垃圾收集算法是内存回收的方法论:分代收集理论(弱分代学说、强分代学说、跨代引用学说)标记-清除算法、标记-复制算法、标记-整理算法这三种算法之间的优劣势;垃圾收集器就是内存回收的实践者,从 Serial 系列收集器到 Parallel 系列收集器,为 CMS 老年代收集器搭配而生的 ParNew 新生代收集器,最重要莫过于 CMS、G1 这两种并发收集器了,里程碑式意义的存在原创 2023-07-05 01:36:41 · 4228 阅读 · 57 评论 -
引用计数 vs 根可达算法:深入比较对象存活判定
该篇博文讲解判定对象是否存活的条件通过什么方式去做的,引用计数器算法、根可达算法,在引用计数器算法中,通过简单的案例来演示在 Java 程序中并未通过该算法来判定对象是否存活,而是通过根可达算法去作判别的,罗列了 Java GC Roots 不同的种类,简要阐述了为下文作铺垫的垃圾回收算法、垃圾收集器,希望能先带你一起了解这方面的前置知识!原创 2023-06-29 16:32:20 · 3995 阅读 · 46 评论 -
深入理解 Java 引用类型:强壮、柔软、脆弱、虚无的力量
该篇博文介绍了经典四大引用门将:强软弱虚,以及如何在对象被 GC 回收前重新完成一次自我救赎代码演示,强引用:当引用无关联其他引用时,根不可达时,该引用会被回收;软引用:内存不足时触发 GC 才会回收,适合于作缓存;弱引用:无论内存是否足够,只要触发 GC 都会被回收,ThreadLocal、WeakHashMap 经典案例;虚引用:在内存不足产生 GC 时,会将虚引用进行回收,回收的结果会放入到 ReferenceQueue 引用队列中,希望这块的知识能够对你有许些帮助,感谢支持三连!原创 2023-06-29 00:06:50 · 4153 阅读 · 47 评论 -
创造与布局:剖析 Java 对象创建过程以及内存布局
该篇博文讲解了创建对象过程的几个核心步骤,剖析了对象内部是如何布局 > 普通对象、数组对象,通过了一个简单的案例来如何统计一个 Object 所占的字节大小,对象头组成部分:Mark Word、Class Pointer,介绍了对象定位的两种方式:句柄池、直接指针,最后,简要说明了对象如何分配的过程;希望你能喜欢,帮助到你是莫过于最开心的事了!原创 2023-06-27 12:06:34 · 3429 阅读 · 40 评论 -
从类加载到双亲委派:深入解析类加载机制与 ClassLoader
该篇博文介绍了类加载时 Class 文件的简要结构及如何通过自带的一些工具、插件观察编译生成的字节码信息,核心在于详细说明了 Class 加载的过程:Loading、Linking、Initializing 阶段,在 Loading 阶段时介绍了很多有意思、有深意的知识点,如加载类时的双亲委派机制、探知 Tomcat 如何打破双亲委派机制的伪代码、如何自定义类加载器以简单|加密的方式去实现加载我们特殊的类,还有意思的分析了 Launcher 核心类中三大类加载器所加载的 jar 包、目录等文件原创 2023-06-25 00:53:12 · 3719 阅读 · 42 评论