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 · 248 阅读 · 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 · 472 阅读 · 0 评论 -
JVM GC 算法
一、GC 算法分类引用计数法: Java 中并没有使用,Python 有标记清除: 遍历所有根对象,把非垃圾数据标记,清除垃圾数据标记压缩: 遍历所有根对象,把非垃圾数据标记,移动非垃圾数据到一片连续的内存空间复制算法: 和标记压缩有点像,但是标记压缩是把数据移动到同一片内存空间,而复制算法是复制到另外一片内存空间中,在 JVM 的内存模型中,在新生代有 eden space、 f...原创 2018-09-20 22:51:29 · 747 阅读 · 0 评论 -
JVM 垃圾收集器要点
下面的 JVM 垃圾收集器都是基于 Hotspot 的,至于其他例如 JRockit 的会有所不同,但是原理都差不多,可能对于内存的划分等方面有些差异。首先看看各收集器之间的共存关系Young generation 上半部分表示年轻代(新生代)可用的的收集器Tenured generation 下半部分表示老年代可用的的收集器一、串行收集器(Serial)单线程可能会产生较长时...原创 2018-09-21 21:53:37 · 294 阅读 · 0 评论 -
JVM class 装载过程
首先看整个大流程一、加载(这是 ClassLoader 要做的事情)ClassLoader 执行流程**双亲模型这是默认的 class 加载流程一般我们写的代码都会在 AppClassLoader 中加载,Custom ClassLoader 是自定义 ClassLoader,后面在非双亲模型下大多是用这种方式加载,例如下面的代码:public class Boy { p...原创 2018-09-22 11:50:31 · 286 阅读 · 0 评论 -
JVM 锁分类
首先对象的锁是怎么实现的?在这里就需要先了解一下 在对象头(Object Header)里面的 Mark Word(标记字段),听说这个东东在 32位 JVM 中占 32bit,64位JVM 中占 64bit,相当小;用于存储对象的 hashCode、垃圾回收标记、年龄、锁信息等,所以这里粗略的可以认为锁大概就是在 Mark Word 上的一个标记了,好,入正题:偏向锁-XX:+UseBia...原创 2018-09-22 17:58:30 · 543 阅读 · 0 评论
分享