JVM:垃圾标记阶段算法之引用计数法
Java JVM 大约 428 字垃圾标记阶段
对象存活判断。
引用计数法
Reference Counting
。
对每个对象保存一个整型的引用计数器属性。用于记录对象被引用的情况。
对于一个对象只要有任何一个对象引用了A
,则A
的引用计数器就加1
;当引用失效时,引用计数器就减1
;只要对象A
的引用计数器的值为0
,即表示对象A
不可能再被使用,可进行回收。
优点
实现简单,垃圾对象便于辨识;判定效率高,回收没有延迟性。
缺点
- 它需要单独的字段存储计数器,这样的做法增加了存储空间的开销。
- 每次值都要更新计数器,伴随着加注和减法操作,这增加了时间开销的
- 引用计数器有一个严重的问题,即无法处理循环引用的情况。这是一条致命缺陷,导致在
Java
的垃圾回收器中没有使用这类算法。
补充
Python
同时支持引用计数和垃圾收集机制。
Python
解决循环引用问题:
- 手动解除:在合适的时机,解除引用关系。
- 使用弱引用
weakref
,weakref
是Python
提供的标准库,旨在解决循环引用。
阅读 691 · 发布于 2022-05-23
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看
换一批
-
OpenResty 中使用 ngx.location.capture 完成第三方接口请求阅读 8531
-
Redis 使用 hotkeys 查看热点数据阅读 4482
-
算法:递归-八皇后问题阅读 1181
-
Nginx 解决前端 CORS 跨域问题阅读 9173
-
LRU 算法 Java 实现阅读 704
-
Windows 查看文件占用的几种方法阅读 4780
-
Java WebSocket The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid state for called method阅读 3744
-
Linux 常用命令之基础命令阅读 2027
-
Java 中的 ThreadLocal阅读 2028
-
Nginx 配置之开启缓存过期时间阅读 3018