JVM 垃圾回收

serial 串行 它为单线程环境设计,且只使用一个线程进行垃圾回收,会暂停所有用户线程,所以不适合服务器环境。
parallel 并行 多个垃圾收集线程并行工作,此时用户线程是暂停的,适用于科学计算/大数据处理等弱交互场景。
CMS 并发 用户线程和垃圾收集线程同时执行(不一定是并行,可能交替执行),不需要停顿用户线程,互联网公司多用它,适用于对响应时间有要求的场景。
G1 将堆内存分割成不同的区域,然后并发的对其进行垃圾回收

// 查看默认垃圾收集器

java -XX:+PrintCommandLineFlags -version

Young Gen Serial Copying Parllel Scavenge ParNew
-------------------------------------------------------------------------------------G1
Old Gen Serial MSC(Serial Old) Parllel Compacting(Parallel Old) CMS

新生代
串行GC (Serial、Serial Copying) -XX:+UseSecrialGC
并行GC(ParNew) -XX:+UseParNewGC 只影响新生代,不影响老年代
并行回收GC(Parallel、Parallel Scavenge) -XX:+UseParallelGC || -XX:+UseParallelOldGC(可相互激活) 串行收集器在新生代和老年代的并行化

老年代
串行GC(Serial Old 、Serial MSC(不推荐使用))
并行GC(Parallel Old 、Parallel MSC)
并发标记清除GC (CMS) -XX:+UseConcMarkSweepGC 自动打开 -XX:+UseParNewGC 是一种以获取最短回收停顿时间为目标的收集器。希望停顿时间最短。适合内存大,cpu核数多的服务器端应用。(初始标记,并发标记,重新标记,并发清除)

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JVM垃圾回收Java虚拟机的一个重要功能,它的知识体系包括以下内容: 1. 垃圾回收算法垃圾回收算法是指垃圾回收器采用的垃圾回收策略。常见的垃圾回收算法包括标记-清除、复制、标记-压缩和分代等。 2. 垃圾回收器:垃圾回收器是JVM的一个组成部分,它负责执行垃圾回收算法,并回收Java对象的内存空间。常见的垃圾回收器包括Serial、Parallel、CMS、G1等。 3. 对象存活判定:垃圾回收器需要判断哪些Java对象是可以回收的,哪些是必须保留的。存活对象可以通过引用计数、可达性分析等方式判断。 4. 垃圾回收的过程:垃圾回收的过程包括标记、清除、整理等阶段。标记阶段是找到存活对象的过程,清除阶段是回收无用对象的过程,整理阶段是将存活对象移动到一块连续的内存区域中。 5. 垃圾回收的性能优化:垃圾回收的性能优化包括分代、增量、并发、预处理等技术。分代是指将Java对象分为年轻代和老年代,以便针对不同的对象有针对性地进行垃圾回收。 6. 垃圾回收的调优和监控:垃圾回收的调优和监控可以通过调整堆大小、设置垃圾回收器类型、调整垃圾回收的参数等方式实现。 JVM垃圾回收Java虚拟机的一个重要功能,掌握其知识体系可以帮助程序员更好地理解Java程序的内存模型和垃圾回收机制,从而编写出高效、可靠的Java程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值