摘要:
1. 在默认情况下,JDK将堆分为两部分,一个年轻的代和一个老的代(实际上,还有第三部分――永久空间,它用于存储装载的类和方法对象)。 借助于复制收集器,年轻的代又分为一个创建空间(通常称为Eden)和两个生存半空间。2. 经验分析表明,对于大多数面向对象的语言,包括 Java 语言,绝大多数对象――可以多达 98%(这取决于您对年轻对象的衡量标准)是在年轻的时候死亡的。 当大多数对象在年轻时死亡时,复制收集器可以执行得相当好,因为复制收集器完全不访问死亡的对象,它们只是将活的对象复制到另一个堆区域中,然后一次性收回所有的剩余空间。 不过,复制收集器处理长寿对象却很糟糕,它要从一个半空间... 阅读全文