GC学习笔记

  • 什么是垃圾

    没有任何引用指向的一个或多个对象(循环引用的)

  • 怎么找到垃圾

  1. 引用计数(refrence count )有个标志计数被引用的次数但是这种方式不能解决循环引用的情况
  2. 根可达算法(root searching)
    根可达算法包括
  • 垃圾回收方法

算法名称概念优点缺点
标记-清除(Mark-sweep)线性遍历堆内存,将标记为垃圾对象的空间直接清除快,简单因为位置不连续,会产生大量空间碎片,之后存放对象困难
复制(Copying)将内存分为对象面和空闲面,对象在对象面创建。将存活对象全部复制到空闲面,清除对象面1. 解决空间碎片化 2. 顺序分配内存,简单高效1. 空间利用率低,只有一半的空间存储对象 2. 复制速度慢,不适用适用于对象存活率高的场景
标记-整理(Mark-compact)移动所有存活对象,按内存地址依次排列,并回收之后的所有空间1.解决空间碎片化2.空间利用率高任何一块移动都需要进行线程同步,移动速度慢,效率低
  • 垃圾回收器

到目前jdk13版本存在的十种垃圾回收器
垃圾回收器

  • 一些常用的命令

      java -XX:
      +PrintFlagsFinal 查看所有JVM配置值
      +PrintFlagsInitail 查看JVM默认配置值
      +PrintCommandLineFlags 查看运行时参数
    

详细GC基础知识参考:
JVM 基础知识(GC)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值