jvm
文章平均质量分 75
jvm系列
-夏夜凉月-
最近在把博客里面的内容进行系统的整理,平常比较懒,没怎么写博客,趁最近有时间,做一个系统的整理,进行查漏补缺,如有不正确的望大家指正,笔者每个例子都经过测试,力争不误人子弟。
展开
-
记一次线上内存泄漏分析
内存泄漏分析OutOfMemoryError原创 2022-07-18 10:24:47 · 184 阅读 · 0 评论 -
深入理解JVM------对象的内存布局
JVM如何创建类的实例对象,以及对象如何分配内存,我们一起来复习下原创 2021-09-29 09:09:24 · 190 阅读 · 0 评论 -
深入理解JVM------类加载器
前言JVM的类加载机制是一个很经典的知识点,阅读本文,你将了解类文件的组成、JVM中的类加载过程、类加载和卸载的时机、类加载器的概念和作用以及双亲委派模型等知识点。1、类文件机器只认机器码,所谓的机器码, 就是机器识别的一堆有特殊意义的二进制指令。JVM作为虚拟的机器,也抽象出了一套自己的“指令集”,这些信息都存在Class文件里,Class文件是以二进制形式存储,并严格的规范了各个字段的语义, 兼容性和检查方法,Class 文件具体由:魔数、版本信息、常量池、访问标志、类索引、父类索引、接口索引集合原创 2021-09-28 14:37:05 · 304 阅读 · 1 评论 -
深入理解JVM------垃圾收集器参数
垃圾收集器选择参数 UseSerialGC:打开此开关,使用serial + serial old 的收集器组合进行回收。 UseParNewGC:打开此开关,使用ParNew+ serial old 的收集器组合进行回收。 UseConcMarkSweepGC:打开此开关,使用ParNew+ cms (serial old 做替补)的收集器组合进行回收。...原创 2018-06-13 17:40:26 · 251 阅读 · 1 评论 -
深入理解JVM------垃圾收集器各自特点
引言 前面,我们简单的了解了垃圾收集器的分类和几种组合,在我们开始后面的讨论前,要说下jvm的两种运行模式,一种client模式,另一种是server模式,默认情况下,我们使用的是client模式,我们可以使用-server命令强制开启server模式,两者最大的差别是,在server模式下jvm做了很多优化。现在让我们深入了解下各种垃圾收集器的运行场景和它们的特点。各种收集器特点 ...原创 2018-05-23 22:35:20 · 482 阅读 · 0 评论 -
深入理解JVM------垃圾收集器
引言 如果说收集算法是垃圾回收的方法论,那么垃圾收集器就是内存回收的具体实现。基于我们平时使用的jvm都是HotSpot的实现,因此,本篇讨论的垃圾收集器也是基于HotSpot的jvm。垃圾收集器分类 串行收集器:只有一条GC线程,运行时需要停止用户程序。 并行收集器:有多条GC线程,运行时也需要停止用户程序。 并发收集器:...原创 2018-05-22 11:42:18 · 263 阅读 · 0 评论 -
深入理解JVM------分代收集算法
为什么把这一算法单独拿出来说呢?原因就是分代收集算法是现在的jvm采用的算法。对象分类这种算法并不是一种新的算法,而是根据对象的存活周期的不同而将内存分为几块,分别为新生代、老年代和永久代。 新生代:朝生夕灭的对象(例如:方法的局部变量等)。 老年代:存活得比较久,但还是要死的对象(例如:缓存对象、单例对象等)。 永久代:对...原创 2018-05-18 11:55:36 · 9147 阅读 · 3 评论 -
深入理解JVM------三种GC算法精解
前面,我们已经知道了GC判定对象存活的算法是可达性分析算法,它解决了哪些对象需要回收的问题。现在我们这篇讨论的就是上一篇剩下的两个问题:什么时候回收、如何回收。本篇内容会比上两篇要多一些,不过既然您已经点进来了,那就好好的享受下这三种算法的大餐,相信您会有收获的。标记-清除算法 如同名字一样,它会进行两项工作,一项是标记,另一项是清除: 标记:标记的过程...原创 2018-05-17 15:28:07 · 842 阅读 · 0 评论 -
深入理解JVM------GC的策略及算法
为何要了解GC 平时工作中,我们或多或少的都会遇到内存溢出或者内存泄漏的问题,如果我们不了解GC的原理,那么遇到问题时,很多时候会让人不知所措,了解了GC,我们遇到这些问题时,就能通过排查,知道问题的原因,从而解决问题。GC解决的事情 1、哪些对象需要回收 2、什么时候回收 3、如何回收GC策略采用什么算法 先让我们回顾下,在上...原创 2018-05-16 15:04:09 · 554 阅读 · 4 评论 -
深入理解JVM------Java内存区域概述
引言 最近准备看两本书,一本是《深入理解计算机系统》,另一本是《深入理解java虚拟机》,两本都是提升内功的必备经书,思来想去,最终还是决定先看jvm(因为这本书相对薄一些)。现在,让我们一起来探索下jvm的奥秘吧,如若有不同理解的地方,欢迎各位猿友一起探讨。运行时数据区域 java虚拟机在执行java程序的过程中会把它管理的内存划分为若干个不同的数据区域。根据java...原创 2018-05-15 14:32:19 · 231 阅读 · 0 评论