因为我对Heap的文字描述比较多,先单独抽取出来:
——–
——–
new对象、数组等分配的内存空间。
heap又分为新生代Young和老年代Old(两者1:2大小)。新生代细拆为3部分(Eden、from、to,8:1:1),from和to合称为Survivor区。
新分配的对象先到新生代的Eden区,要是Eden放不下,就会触发Minor GC垃圾回收,新生代使用的GC算法为引用计数法,首先Eden中存活的对象(仍然有在程序运行中被引用,这个引用可能是Method方法区中的常量池存储的引用【String引用、或者非浮点数的引用池-128~127】,也可能不是)放到to区,要是to有放不下的