内存分配策略

对象的内存分配主要是在堆上分配。根据具体的java虚拟机和相关的配置的不同,可能会存在一定的差异,不过大体上主要如下的几个规则:

1、对象会优先在Eden上分配

对象在一般情况上大多数会在新生代的Eden上分配内存,当内存不足时,虚拟机会发起一次MinorGC。

2、大对象会直接进入老年代

这里的大对象是指那些需要大量连接的内存空间的对象,例如:那些很长的字符串和数组。

3、长时间存活的对象会进入到老年代

一般来说,对象在Eden出生并且经历一次MinorGC,而已能survivor空间中,就对象年龄+ 1,当年龄大于阈值时,就会进入到老年代。其中阈值有一个默认值,也可以通过配置来设定。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容