JVM
mxxrgxg
这个作者很懒,什么都没留下…
展开
-
JVM(一)JVM内存结构
Java代码需要运行在虚拟机(JVM)上,而JVM为了方便管理内存,会在Java程序运行过程中,把自己所管理的内存划分为若干个不同的数据区域,用作不同的用途,先看一下大致划分(JDK1.6) 堆 存放内容: ·大多数创建的对象(随着技术的发展,对象必须在堆上分配不是那么绝对了) ·数组值 GC情况: GC工作的主要区域,回收不再被使用的对象 内存溢出: ...原创 2018-10-10 15:58:59 · 266 阅读 · 0 评论 -
JVM(二)Java内存模型(JMM)
在说Java内存模型之前我们先举一个例子,我们都知道计算机中cpu从内存读取数据而不是硬盘,是因为硬盘的读写速度太慢,会因为IO等待造成cpu的等待成本。而随着cpu的发展,内存也跟不上cpu的运行速度,所以cpu厂商在每颗cpu上都加了高速缓存,用来环节这种情况,所以数据交互就变成了cpu→cpu高速缓存→内存(主存)→硬盘这样的逻辑顺序。 cpu的主频不能无限增长,想要提升性能,就需要多个c...原创 2019-01-21 14:45:53 · 141 阅读 · 0 评论 -
JVM(三)垃圾回收
年轻代、老年代划分 在说垃圾回收之前,我们先对Java堆的分代做一个简单的了解。 分代原因:Java堆中对象的存活周期不同,有的存活周期很长,有的很短,为了使垃圾收集更有效率,便对Java堆进行了分代。 分代详情:一般情况下,Java堆分成三部分:新生代,老年代,永久代 1、新生代 新生代主要用来存放新生的对象,一般占据堆1/3的空间,新生代又分为Eden区、survivorTo区、su...原创 2019-01-22 10:55:06 · 168 阅读 · 0 评论