垃圾回收器的工作机制
来源:互联网 发布:windows群集有什么用 编辑:程序博客网 时间:2024/06/06 12:40
1.引用计数器
每一个对象都会用一小块存储空间来存放引用计数器,当对象被引用时,计数器加1,当对象失去引用或对象引用被置为null时减1,当垃圾回收器检测到对象的引用计数器为0时
垃圾回收器释放资源,大家也许会想到资源释放后那空间是不连续的,所以垃圾回收器还有整理空间的功能,让空间连续
ps:这里会有一个缺陷,当几个对象引用形成一个循环时,这些对象本来应该被释放的,但由于他的引用计数器不为0,所以垃圾回收器不会释放对象的内存资源
2.停止-复制
垃圾回收器回重堆栈和静态存储区开始检查所有引用,当对象是可到达时,就会把可到达的所有对象复制到另外一块存储空间上,而不可到达的便成为垃圾,这种机制的效率是非常低的,因为他会先停止程序,然后执行复制操作,复制的同时还必修改所有引用.完成复制后,空间是连续的,所以就不需要整理。当垃圾(不可到达对象)很少时,这种机制是非常不划算的,所以有了下面的方法
3.标记-清扫
速度想当面慢,但垃圾很少时相对于停止-复制是相当快的
从堆栈和静态存储区开始,遍历所有引用,找出存活(可到达)对象并标记,当标记完后开始清理任务,清理后空间是不连续的,所以垃圾回收器还必须整理
如果只用一种机制,是不灵活的
所以有了第4种机制
4自适应
对象很稳定时用标记-清扫
阅读全文
0 0
- Java垃圾回收器的工作机制
- java垃圾回收器的工作机制
- 垃圾回收器的工作机制
- Java虚拟机(JVM)垃圾回收器的工作机制
- Java虚拟机(JVM)垃圾回收器的工作机制
- JAVA垃圾回收机制的工作原理
- 垃圾回收机制的工作原理
- 关于垃圾回收器工作机制
- Java垃圾回收机制(1)- GC的工作原理
- java垃圾回收器的工作原理
- Java垃圾回收器的工作原理
- 垃圾回收器的工作原理
- Java的垃圾回收器GC机制
- Sun JVM内存管理与Java虚拟机(JVM)垃圾回收器的工作机制
- java垃圾回收——工作机制
- .Net GC的工作机制 垃圾回收机制的工作原理
- .NET的垃圾回收机制
- C++的垃圾回收机制
- android 调起h5页面微信支付
- 使用svn-all-fast-export将SVN转为Git
- 学习笔记第四天
- java(10):jdbc的简单使用和操作
- 循环结构【C语言程序设计】
- 垃圾回收器的工作机制
- 南通青鸟 IT 教育 96 班同学在 3 教室上陆老师的 Java 课
- 实现发邮件方法,随机返回失败成功,50个线程同时调用sendEmail发送1000封邮件,统计发送失败和成功的个数
- 基于Arduino Due的FreeRTOS程序设计(AtmelSAM3X8E)--第一篇
- 信号量sem_t,互斥锁pthread_mutex_t的使用
- 使用notepad++编译器时 错误:编码gbk的不可映射字符串
- 2017.10.31 白银走势分析
- C++矩阵操作+,-,*,=,矩阵转置
- pygame游戏之旅12:调用按钮实现游戏开始功能