垃圾回收算法(4种)GC算法是内存回收的方法论,垃圾收集器就是算法落地实现。
整理引用复制算法标记-清除标记-对垃圾回收期的理解:从来没有出现完美的收集器,也没有万能的收集器,只对最适合具体应用的收集器进行分代收集。
垃圾的回收方法是什么? 黄色线条表示GC线程。
1 .串行垃圾收集)它为单线程环境设计且只使用一个线程进行垃圾回收,会暂停所有的用户线程,所以不适合服务器环境。
2.Parallel (并行垃圾回收器)多个垃圾收集线程并行工作,此时用户线程时暂停的,适用于科学计算/大数据处理首台处理等弱交互场景。
3.CMS (同时垃圾回收器)用户线程和垃圾收集线程同时执行(不一定是并行,可能交替执行),不需要停顿用户线程,互联网公司多用它,适用于对响应时间有要求的场景。
4.G1 G1垃圾回收器将堆内存分割成不同的区域然后并发的对其进行垃圾回收
5.zgc (Java 11,12中的新增功能)以下哪项是默认垃圾收集器? JVM参数: http://www.Sina.com/http://www.Sina.com /
Java的GC回收类型主要有几种? UseSerialGC :串行通用汽车。 用户并行LC :并行LC。 UseConcMarkSweepGC :并行标记清除GCUseParNewGC :杨氏区中的并行GC回收方式。 useparalleloldgc:old区的并行GC。 通用G1 GC。 G1垃圾回收器:java8默认用的并行垃圾回收器
年轻一代和老年代分别是独立连续的存储器块。 年轻一代的收集使用单eden SO S1复制算法。 老年代的收集必须扫描整个老年代的区域。 均以尽可能少、快速地运行GC为设计原则。java -XX: +PrintCommandLineFlags -version适用于多处理器和大容量内存环境,在实现高吞吐量的同时,尽可能满足垃圾回收暂停时间的要求,此外还具有以下特性:
可以与APP应用程序线程同时执行,如CMS收集器。
整理空闲空间很快。
预测GC休眠时间需要更多的时间。
不想牺牲大量的吞吐量性能。
不需要更大的Java Heap。
G1采集器的设计目标是替代CMS采集器,与CMS相比,具有以下优势: G1是具有内存整理过程的垃圾收集器,不经常出现内存碎片。 G1的停止全球(STW )更加可控,G1在暂停时间中添加了预测机制,并且用户可以指定期望的暂停时间。