GC垃圾回收机制(1)

GC是干啥的?

C/C++是没有GC的,对于内存管理,就比较麻烦,需要手动在适合的时候释放的,而Java,Python和Go等语言则自带GC,对于内存管理来说就比较方便。在C/C++中,若是申请了空间没有释放,就又可能会导致内存泄漏,而GC则会很大程度的预防这个问题,但是不代表内存一定安全
GC回收的本质又是什么呢?
GC回收的本质其实就是在 回收对象,以对象为基本的单位,把不需要的对象找出来,回收释放内存即可,比起以字节为单位,以对象为单位更加的简单方便。

有GC和没有GC的区别

GC对于内存管理来说,就相当于学校社团向学校申请教室准备集体活动,活动结束后学校会有专门的保洁阿姨来打扫卫生,这时候的保洁阿姨就相当于是GC,她会自动过来打扫教室卫生,如果学校没有专门的阿姨打扫卫生,就需要社团的学生自己来打扫卫生,就相当于没有GC

GC需要收集哪些内存?

1.堆上(主要回收区域)
堆的区域很大,有new就会申请内存。整个的内存都是源自于操作系统。JVM一启动,就会立马从操作系统申请一大块内存,再给这些内存分配一些区域在这里插入图片描述

2.常量池/方法区 占用空间比较小,数据经常使用,使用GC收集性价比不高

回收对象有哪些步骤?

1>.标记:找到哪些对象是垃圾,标记方式有很多
2>.回收:把垃圾对象释放,回收方式有很多
大的方向就是这两点,具体的细节还是有很大的差异

关于GC标记的详细总结GC垃圾收集机制(2)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值