堆(Heap)
1、堆空间是线程共享。那么问题来了,它既然是共享是怎么保证多个线程同时操作引发的安全问题呢?是这样的,堆当中为每一个线程都划分了一个叫做TLAB的区域,以此来保证线程间的操作是安全的。
2、堆中又划分为新生代区、老年代区,其中新生代中又划分为Eden(伊甸园区)、幸存者0区(S0)和幸存者1区(S1),幸存者区还可以叫做From区和To区,幸存者From区和To区不是固定的,它们是动态的来回交换的。
3、默认新生代中Eden(伊甸园)区、幸存0区和幸存1区多占内存大小比例是8:1:1,新生代和老年代内存大小比例是1:2。初始堆空间默认大小是物理内存的1 / 64(-Xms),最大堆空间默认大小是物理内存1 / 4(-Xmx)。