所有对象都在这里分配内存,是垃圾收集的主要区域(”GC 堆”)。

    现代的垃圾收集器基本都是采用分代收集算法,其主要的思想是针对不同类型的对象采取不同的垃圾回收算法。可以将堆分成两块:

    • 新生代(Young Generation)
    • 老年代(Old Generation)

    堆不需要连续内存,并且可以动态增加其内存,增加失败会抛出 OutOfMemoryError 异常。

    可以通过 -Xms 和 -Xmx 这两个虚拟机参数来指定一个程序的堆内存大小,第一个参数设置初始值,第二个参数设置最大值。

    1. java -Xms1M -Xmx2M HackTheJava