
JVM
文章平均质量分 84
QEcode
这个作者很懒,什么都没留下…
展开
-
JVM内存结构
前言 JAVA GC(Garbage Collection,垃圾回收)机制是区别C++的一个重要特征,c++的开发人员需要自己管理每一个对象的创建和销毁.而对于java的开发人员来说,他们不需要了解对象的创建和销毁,因为jvm已经帮我们把这件事-"垃圾回收"代劳了.但这并不意味着我们不用去理解GC机制的原理,因为如果不了解其原理,可能会引发内存泄漏、频繁GC导致应用卡顿,甚至出现OOM...原创 2018-12-28 10:47:33 · 188 阅读 · 0 评论 -
JVM内存分代
Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代、老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略。 为什么要分代? 堆内存是虚拟机管理的内存中最大的一块,也是垃圾回收最频繁的一块区域,我们程序所有的对象实例都存放在堆内存中。给堆内存分代是为了提高对象内存分配和垃圾回收的效率。试想一下,如果堆内存没有区域划分,所有的新创...转载 2018-12-28 13:41:25 · 458 阅读 · 0 评论 -
锁的状态(偏向锁,轻量级锁及重量级锁)
本篇博客参考了死磕Synchronized底层实现--概论如果有兴趣了解更深的内容可以看看上面博客。 锁的状态 锁的状态总共有四种:无锁状态、偏向锁、轻量级锁和重量级锁。随着锁的竞争,锁可以从偏向锁升级到轻量级锁,再升级的重量级锁(但是锁的升级是单向的,也就是说只能从低到高升级,不会出现锁的降级)。锁的状态保存在对象头的Mark Word中,以32位的JDK为例: (一)...原创 2019-06-28 21:48:02 · 1160 阅读 · 0 评论