Java内存分配
2015-09-09 21:05
260 查看
对象优先在Eden分配
大多数情况,对象在新生代Eden区中分配。当Eden去没有足够内存空间分配时,进行Minor GC。大对象直接进入老年代
大对象是指连续占用内存空间的对象,比如很长的字符串以及数组。长期存活的对象将进入老年代
用一个年龄计数器,每次minor GC后存活的对象移动到Survior空间,并且计数器加1.年龄计数器大于一定值(默认是15),将晋升到老年代.可以用-XX:MaxTenuringThreshold设置阀值.动态对象年龄判定
如果在Survivor空间中的相同年龄所有对象大小的总和大于Survivor空间的一半,年龄大于或等于该年龄的对象就可以直接进入老年代,无须等到MaxTenuringThreshold中要求的年龄。空间分配担保
在Minor GC前,虚拟机会检查老年代的最大连续空间是否大小新生代所有对象总空间。如果这个成立,Minor GC是安全的;否则会根据HandlePromotionFailure设置,担保是否进行Minor GC。相关文章推荐
- java环境变量详解---找不到或无法加载主类
- JAVA的第一篇博客,为什么这么激动!!!!
- java学习之认识泛型
- Struts2不可忽视的基础
- java设计模式学习笔记--可配置的简单工厂模式
- 浅谈面向对象第三枪
- java面向对象的编程
- eclipse 中文注释乱码问题的解决方法
- Spring quartz 任务调度(注解方式)
- java 环境变量设置 经典啊 很详细
- java读取网页
- WSDL2java简单使用
- <Chapter 2>2-1-2.安装Java SDK
- java 自动拆箱(unboxing)和自动装箱(boxing)
- Eclipse已经安装了SVN插件,但是在获取SVN代码时,一直处于progress....
- 【转】java格式化输出 printf 例子
- java 排序算法-选择排序
- db2使用Java存储过程实现MD5函数
- CallBack 的理解和java实现
- java 数组