虚拟机相关介绍

1、Java堆
    Java堆是和Java应用程序关系最密切的内存空间,几乎全部的对象都存放在其中,而且Java堆彻底是自动化管理的,经过垃圾回收机制,垃圾对象会自动清理,不须要显示地释放。
    
    根据垃圾回收机制不一样,Java堆有可能拥有不一样的结构。最为常见的就是将整个Java堆分为新生代和老年代。其中新生代存放新生的对象或者年龄不大的对象,老年代则存放老年代对象。html

    新生代分为Eden区,s0区、s1区,s0和s1区也被称为from和to区域,他们是两块大小相等而且能够互换角色的空间。算法

    当GC发送的时候,若是首先清理的是s0区,把不用的对象清理,把在使用的复制到s1区;若是再次清理的是s1区,一样的原理。优化

    绝大多数状况下,对象首先是分配在Eden区,再一次新生代回收后,若是对象还存活,则会进入s0或者s1区。以后每通过一次新生代回收,若是对象存活则它的年就加1,当对象达到必定的年龄后,则进入老年代。spa


2、垃圾回收算法:htm

    复制算法:其核心思想就是将内存分为两快,每次只使用其中一块,在垃圾回收时,将正在使用的内存中的存留对象复制到未被使用的内存块中去。以后去清楚以前正在使用的内存块中全部的对象,反复去交换两个内存中的角色,完成垃圾收集。
    (Java中新生代的from和to空间就是使用这个算法)。
标记压缩算法:在标记清除法基础之上作了优化,把存活的对象压缩到内存一端,然后进行垃圾清(Java中老年代使用的就是标记压缩算法)。
  3、相关参数的详细配置
http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html对象

相关文章
相关标签/搜索