对象优先在Eden分配
大多数情况,对象在新生代Eden区中分配。当Eden去没有足够内存空间分配时,进行Minor GC。
大对象直接进入老年代
大对象是指连续占用内存空间的对象,比如很长的字符串以及数组。
长期存活的对象将进入老年代
用一个年龄计数器,每次minor GC后存活的对象移动到Survior空间,并且计数器加1.年龄计数器大于一定值(默认是15),将晋升到老年代.可以用-XX:MaxTenuringThreshold设置阀值.
动态对象年龄判定
如果在Survivor空间中的相同年龄所有对象大小的总和大于Survivor空间的一半,年龄大于或等于该年龄的对象就可以直接进入老年代,无须等到MaxTenuringThreshold中要求的年龄。
空间分配担保
在Minor GC前,虚拟机会检查老年代的最大连续空间是否大小新生代所有对象总空间。如果这个成立,Minor GC是安全的;否则会根据HandlePromotionFailure设置,担保是否进行Minor GC。
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
50.java内存分配.zip50.java内存分配.zip50.java内存分配.zip50.java内存分配.zip50.java内存分配.zip50.java内存分配.zip50.java内存分配.zip50.java内存分配.zip50.java内存分配.zip50.java内存分配.zip50.java...
JAVA内存分配原理 Java 程序运行时的内存结构分成:方法区、栈内存、堆内存、本地方法栈几种。
Java内存分配原理精讲,针对每行代码的运行原因进行深层次的讲解!
详细讲解了Java中内存的分配情况,对学习Java有很大的帮助。
Java内存分配与管理是Java的核心技术之一,今天我们深入Java核心,详细介绍一下Java在内存分配方面的知识。一般Java在内存分配时会涉及到以下区域: ◆寄存器:我们在程序中无法控制 ◆栈:存放基本类型的...
深入Java核心_Java内存分配原理精讲深入Java核心_Java内存分配原理精讲深入Java核心_Java内存分配原理精讲深入Java核心_Java内存分配原理精讲
文档中介绍了: 寄存器 栈 堆 静态域 常量池 帮助java学习者从本质上理解java的运行机制。
Java内存分析
Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识。一般Java在内存分配时会涉及到...
Java有几种存储区域? java内存分配 Java内存模型 Java内存分配实例解析 String 常量池问题 堆(Heap)和非堆(Non-heap)内存 堆内存分配 非堆内存分配
本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。
关于java内存分配的讲述。JAVA 文件编译执行与虚拟机(JVM)介绍
java内存分配和String类型的深度解析Java开发Java经验技巧共12页.pdf.zip
java中内存分配
JAVA内存分配与管理.doc
本文大致介绍了:JAVA内存分配与管理是Java的核心技术之一。
简单介绍java内存分配情况
深入java核心,了解java内存分配原理...