垃圾回收机制
垃圾回收机制:
1.引用计数法:每个对象都有一个引用计数器,当对象被引用时,计数器加1,当引用失效时,计数器减1,当计数器为0时,对象被回收。垃圾回收器定期(周期性)找出那些不再被引用的对象,然后释放这些对象所占用的内存。
2. 标记-清除法:从根节点开始遍历所有对象,标记所有可达的对象,然后清除所有未被标记的对象。垃圾回收器定期(周期性)找出那些未被标记的对象,然后释放这些对象所占用的内存。
3. 复制算法:将内存分为两个相等的区域,每次只使用其中一个区域。当垃圾回收器运行时,它会将所有可达的对象复制 到另一个区域,然后释放原来的区域。垃圾回收器定期(周期性)运行,以保持内存的可用性。
4. 分代收集法:将对象分为不同的代,每一代都有不同的存活时间。垃圾回收器定期(周期性)运行,以保持内存的可用性。 包括0,1,2代,0代是刚刚创建的对象,1代是经过一次垃圾回收后仍然存活的对象,2代是经过两次垃圾回收后仍然存活的对象。大对象一般都在稳定的2代,即使需要回收也只是清空数组,因为大对象申请和回收的代价很高。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?