![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 66
ocp114
这个作者很懒,什么都没留下…
展开
-
JVM 内存模型相关理解
一、JVM 启动流程 执行 java xxx 或 javaw xxx 命令 从系统环境变量或当前路径中找到和 java 或 javaw 关联的程序并运行 java 或 javaw 程序找到 jvm.cfg 配置文件并且对 jvm 进行初始化 找到 xxx 文件的 main 方法后开始运行 二、JVM 内存模型(粗略) 图 1 图 1 首先说明一下:    &n...原创 2018-09-20 15:04:03 · 169 阅读 · 0 评论 -
JVM 常用配置参数
-verbose:gc 打印 GC 的简要信息 -XX:+printGC 打印 GC 的简要信息 [GC (Allocation Failure) 6036K->1672K(19968K), 0.0012595 secs] -XX:+PrintGCDetails 打印 GC 详细信息 Heap 名称&amp原创 2018-09-20 19:23:20 · 385 阅读 · 0 评论 -
JVM GC 算法
一、GC 算法分类 引用计数法: Java 中并没有使用,Python 有 标记清除: 遍历所有根对象,把非垃圾数据标记,清除垃圾数据 标记压缩: 遍历所有根对象,把非垃圾数据标记,移动非垃圾数据到一片连续的内存空间 复制算法: 和标记压缩有点像,但是标记压缩是把数据移动到同一片内存空间,而复制算法是复制到另外一片内存空间中,在 JVM 的内存模型中,在新生代有 eden space、 f...原创 2018-09-20 22:51:29 · 638 阅读 · 0 评论 -
JVM 垃圾收集器要点
下面的 JVM 垃圾收集器都是基于 Hotspot 的,至于其他例如 JRockit 的会有所不同,但是原理都差不多,可能对于内存的划分等方面有些差异。 首先看看各收集器之间的共存关系 Young generation 上半部分表示年轻代(新生代)可用的的收集器 Tenured generation 下半部分表示老年代可用的的收集器 一、串行收集器(Serial) 单线程 可能会产生较长时...原创 2018-09-21 21:53:37 · 212 阅读 · 0 评论 -
JVM class 装载过程
首先看整个大流程 一、加载(这是 ClassLoader 要做的事情) ClassLoader 执行流程** 双亲模型 这是默认的 class 加载流程 一般我们写的代码都会在 AppClassLoader 中加载,Custom ClassLoader 是自定义 ClassLoader,后面在非双亲模型下大多是用这种方式加载,例如下面的代码: public class Boy { p...原创 2018-09-22 11:50:31 · 202 阅读 · 0 评论 -
JVM 锁分类
首先对象的锁是怎么实现的?在这里就需要先了解一下 在对象头(Object Header)里面的 Mark Word(标记字段),听说这个东东在 32位 JVM 中占 32bit,64位JVM 中占 64bit,相当小;用于存储对象的 hashCode、垃圾回收标记、年龄、锁信息等,所以这里粗略的可以认为锁大概就是在 Mark Word 上的一个标记了,好,入正题: 偏向锁 -XX:+UseBia...原创 2018-09-22 17:58:30 · 433 阅读 · 0 评论