由来
不喜欢看历史的可以先看后面内容。之所以将Java堆又细分为新生代和老年代的原因不是因为《Java虚拟机规范》对这一块数据区域有进一步地划分。
而是Sun/Oracle JDK和Open JDK中默认使用的HotSpot虚拟机在G1垃圾收集器出现以前,所有使用的垃圾收集器全部都是基于“分代收集理论”来设计的。
也就是说把Java堆固定划分为两个区域,针对各自区域中存储数据的特点,一种垃圾收集器工作在新生代,另一种垃圾收集器工作在老年代,二者配合共同完成垃圾收集工作。所以对Java堆的进一步细分完全是为了方便进行垃圾收集。
但是到了今天,再这么说就值得商量了。