Java的内存区域称为堆(heap),是保存Java类和对象的物理区域。内存区域对应于对象的不同生存期,分为3个:新域、旧域、永久域。
- 新域:由Eden和两个救助空间Survivor组成。新对象通常创建于Eden中。其中一个救助空间Survivor会随时被清空,并用做另一个救助空间Survivor的目的地。当进行垃圾收集时,所有来自Eden和救助空间Survvor的活动对象都被复制到另一个救助空间Survivor。对象在两个救助空间Survivor之间移动,直到它们足够“老”,能够被移入保存生存期较长对象的旧域中。
- 旧域:保存生存期较长的对象。
- 永久域:保存那些在虚拟机的整个生存期都生存的对象,此域不需要被垃圾收集程序清空。
对JVM的性能调优,即是对JVM的内存进行调整和控制,包括堆大小的调整、Generation大小的调整、垃圾收集程序的选择。