Java gc机制
1、JVM的内存结构由堆、栈、本地方法栈、方法区等部分组成。
2、JVM分别对新生代和旧生代采用不同的垃圾回收机制。
3、所有通过new创建的对象的内存都在堆中分配。
4、堆被分为新生代和旧生代
5、新生代又被划分为Eden和Survivor区
6、Survivor油FromSpace 和 ToSpace组成。
7、新建的对象都用新生代分配内存,当Eden内存不足时,会把存活的对象转移到Servivor>中
8、新生代中经过多次垃圾回收仍然存活的对象转移到旧生代。
9、新生代采用Copying算法进行回收,即扫描出存活的对象并复制到一块完全未使用的空间
中,即在Eden和FromSpace或ToSpace之间copy,最后转移到旧生代。
10、旧生代与新生代不同,其中的对象存活时间较长,比较稳定,故采用标记(Mark)算法回
收。
11、标记算法:扫描出存活对象并标记,然后回收未被标记的对象。
12、回收后的碎片空间要么进行合并,要么标记出来便于下次分配,总之要减少内存碎片带
来的效率损耗。