2017年8月7日
摘要: 内存碎片一般是由于空闲的连续空间比要申请的空间小,导致这些小内存块不能被利用。产生内存碎片的方法很简单,举个例: 假设有一块一共有100个单位的连续空闲内存空间,范围是0~99。如果你从中申请一块内存,如10个单位,那么申请出来的内存块就为0~9区间。这时候你继续申请一块内存,比如说5个单位大,第二 阅读全文
posted @ 2017-08-07 13:57 蒋闯 阅读(4568) 评论(0) 推荐(0) 编辑
摘要: 广泛地说,JVM堆内存被分为两部分——年轻代(Young Generation)和老年代(Old Generation)。 年轻代 年轻代是所有新对象产生的地方。当年轻代内存空间被用完时,就会触发垃圾回收。这个垃圾回收叫做Minor GC。年轻代被分为3个部分——Enden区和两个Survivor区 阅读全文
posted @ 2017-08-07 12:31 蒋闯 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 介绍如下6个组成部分 1.程序计数器:一块较小内存区域,指向当前所执行的字节码。如果线程正在执行一个Java方法,这个计数器记录正在执行的虚拟机字节码指令的地址,如果执行的是Native方法,这个计算器值为空。 2.Java虚拟机栈:线程私有的,其生命周期和线程一致,每个方法执行时都会创建一个栈帧用 阅读全文
posted @ 2017-08-07 12:30 蒋闯 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 对于年轻代,刚开始创建的对象都是放置在eden区的,而将年轻代分成3个部分,主要是为了生命周期短的对象尽量留在年轻代。当eden区申请不到空间的时候,进行minorGC,把存活的对象拷贝到survior。年老代主要存放生命周期比较长的对象,比如缓存对象。具体jvm内存回收过程描述如下: 1、对象在E 阅读全文
posted @ 2017-08-07 12:29 蒋闯 阅读(149) 评论(0) 推荐(0) 编辑