GC垃圾判断与回收

GC垃圾回收不会涉及到虚拟机栈的

GC垃圾回收的几种基础算法
先言-将内存空间比喻为一个excel表格,每个单元格为存储的数据。
标记清除法:遍历,将非垃圾存储单元格进行标记,再将所有未标记的对象当做垃圾清除。这将带来内存碎片问题(因为存活对象的位置变得杂乱无章)
复制:将excel表一份为二,只用其一,在进行垃圾清扫时,将存活对象放到另一个侧,从新排列。这样就解决了会出现内存碎片问题。
标记整理法:前期同标记清除法一样去除垃圾,而后将存活对象向一端进行移动整理。

GC是如何判断垃圾的
判断对象是否为垃圾通常有两种方式
1.引用计数法 给对象一个引用计数器,用到它则+1,失效时-1,值为0即代表其为垃圾。
2.可达性分析法 想像一棵以GC Roots对象为根节点的树,子节点为其包含关联的对象。凡未在树中的对象,即为不可能被引用的对象,即垃圾。
JVM中,可作为GC Roots的有
虚拟机栈中引用的对象
本地方法栈中引用的对象
方法区中类静态属性引用的对象
方法区中常量引用的对象

java采用的是可达性分析法来判断垃圾。

Java内存分配和回收的机制
分代分配和回收,它综合了GC基础算法中的标记清除法复制法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缔曦_deacy

码字不易,请多支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值