转自http://ifeve.com/jvm-optimize-1/
java由堆来分配所需内存。
java有3个代,年轻代、年老代、永久代
垃圾回收:当堆的空间不足以存放新的对象时,这是需要分配内存,也就是垃圾回收启动。
GC算法:引用计数器回收、跟踪回收
下面转自http://www.importnew.com/13827.html
GC种类:4种
1.串行垃圾回收器
2.并行垃圾回收器
3.并行标记扫描垃圾回收器
4.G1垃圾回收器
第一种串行垃圾回收器:单线程工作环境,不适合生产环境。发送垃圾回收时会中断所有的程序。
第二中并行垃圾回收器:Java默认的垃圾回收器,可以多线程处理,但是也会在垃圾回收的时候终端所有程序
第三中并行标记扫描垃圾回收器:标记需要清理的实例,与第二种相比,并行标记扫描垃圾级回收器需要更多的cpu资源。
第四中G1垃圾回收器,适用于堆内存比较大的,它会划分不同区域,并并发的进行垃圾回收。首先回收垃圾最多的区域。