以下是我发现的评论 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?当年轻一代和老一代填补每一代的特定空间时,它会运行吗?
编辑看起来它的一代是小集合,因为它的大小远远小于老一代,这是一个主要的集合。这个猜测。不确定吗?
答案 0 :(得分:2)
1)次要集合是年轻空间之间或之间的对象副本。
2)主要收藏品是老一代的整洁。
次要集合通常比主要集合更快,可以解释名称。
3)当年轻一代的复制对象填满旧的时,会发生完整的收集。 (并发收集器在判断旧代有点满时可以触发主要集合)
答案 1 :(得分:2)
解释很长,最好的答案是通过http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html,这清楚地解释了所有概念。