您的位置:首页 > 编程语言 > Java开发

深入理解Java虚拟机 -- 读书笔记(4):内存分配策略

2013-03-04 00:06 288 查看
本系列为《深入理解Java虚拟机 》(周志明著)读书笔记

VM的内存分配机制大致遵循这几个原则:

对象优先在Eden分配

大多数情况下,对象中新生代的Eden区分配。当Eden区没有足够的内存时,JVM将发起一次Minor GC。

大对象直接进入老年代

这里的大对象指需要大量连续内存空间的对象,最典型的就是很长的字符串和各种数组。虚拟机提供了一个-XX:PretenureSizeThreshhold参数,令大于这个值的对象直接进入老年代。

长期存活的对象进入老年代

JVM给每个对象定义了一个年龄(Age)计数器。如果对象中Eden出生并且经历一次Minor GC后仍然存活,并能被Survivor接纳的话,此对象将被移动到Survivor空间中,并将年龄设为1。对象在Survivor中每经历一次Minor GC,其年龄将增加1。当对象到达一定年龄时(默认为15),就会被晋升到老年代中。这个界限可以通过-XX:MaxTenuringThreshold来设置。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: