澄清Java生成和垃圾收集器概念?

时间:2011-09-11 12:20:12

标签: java garbage-collection

以下是我发现的评论 http://www.springsource.com/files/uploads/all/pdf_files/news_event/Inside_the_JVM.pdf 通过内存管理时

语句1: -

所有新对象都是在年轻一代中创建的 如果他们在一个或多个次要GC中存活,则仅移至Old Gen

问题1: - 这里没有得到小GC的意思吗?

声明2: -

当终身空间填满时会发生主要收藏

问题2: - 没有得到主要收藏品的含义?

根据我的理解,
所有新对象都是在年轻代中创建的,然后GC运行,然后为无法访问其引用的对象释放内存 并将所有其他对象转移到老一代。

问题3:现在JVM什么时候决定在老一代和年轻一代上运行GC?当年轻一代和老一代填补每一代的特定空间时,它会运行吗?

编辑看起来它的一代是小集合,因为它的大小远远小于老一代,这是一个主要的集合。这个猜测。不确定吗?

2 个答案:

答案 0 :(得分:2)

1)次要集合是年轻空间之间或之间的对象副本。

2)主要收藏品是老一代的整洁。

次要集合通常比主要集合更快,可以解释名称。

3)当年轻一代的复制对象填满旧的时,会发生完整的收集。 (并发收集器在判断旧代有点满时可以触发主要集合)

答案 1 :(得分:2)

解释很长,最好的答案是通过http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html,这清楚地解释了所有概念。