新生代 --复制算法
老年代 --标记压缩清除算法
分代 分区思想
垃圾回收的任务是识别和回收垃圾对象进行内存清理,为了让垃圾回收器可以高效的执行,大部分情况下,会要求系统进入一个停顿的状态。
停顿的目的是终止所有应用线程,只有这样系统才不会有新的垃圾产生,同时停顿保证了系统状态正在某一个瞬间的一致性,也有益于更好的低标记垃圾对象。
因此在垃圾回收时,都会产生应用程序的停顿。
分代算法:就是根据对象的特点把内存分成N块,而后根据每个内存的特点使用不同的算法。
对于新生代和老年代来说,新生代回收频率很高,但是每次回收耗时都很短,而老年代回收频率很低,但是耗时会相对较长,所以尽量减少老年代的GC。
分区算法:其主要就是将整个内存分为N多个小的独立空间,每个小空间都可以独立使用,这样细粒度的控制一次回收多少个小空间,而不是对占整个空间
进行GC,从而提升性能,并减少GC停顿的时间。
花太香
运行时虚拟机中的内存如何布局?
Java 原生类型 引用类型