JVM笔记

怎么判断哪些对象需要被回收?
根可达算法,根不可达的对象没有被任何方法引用那么就说无用的对象可被回收
垃圾回收算法有哪些?
在这里插入图片描述

  1. 标记清除会清除掉垃圾对象,但会导致不连续的内存空间。
  2. 标记压缩不但清除掉垃圾对象还会把有用对象压缩到一块,空出连续内存空间,所以优于标记清除。
  3. 拷贝是清除之后将有用对象拷贝到新的区域,比如JVM
    youngGC会把新生代有用对象全部拷贝到一个空的survive区然后把eden区和另一个survivor区的对象全部清除,survivor0和survivor1两个区是轮换的总有一个区是空的,每发生一次youngGC都会把一个区的幸存对象全部拷贝到另一个survive区,也是为了解决内存碎片化问题。
    在这里插入图片描述

垃圾回收器有哪些?
Serial串行垃圾回收器,单线程进行垃圾回收,GC时会STW,业务线程全部停止等GC完了才继续,小内存还可以,大内存垃圾回收耗时会很长
CMS concurrent mark sweep并发标记扫描,为了解决STW而诞生,可以一边回收一边执行业务线程
G1

三色标记算法
自己和自己引用的对象都找到的对象被标记为黑色
自己找到但是自己引用的对象没找到的对象被标记为灰色
自己都没有被找到的对象被标记为白色

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值