垃圾回收机制

1.垃圾回收

1.1 概述

      有些语言不支持垃圾自动回收,需要手动回收,而java是支持自动垃圾回收的,但是垃圾回收不是java语言首创的,垃圾回收关系的问题:那些区域需要回收,什么时候回收,如何回收。java的自动回收经过长时间的发展,已经非常强大了。

1.2 什么样的对象是垃圾

      在运行过程中,没有被任何引用指向的对象,被称为垃圾对象。

1.3 为什么需要GC

如果不及时清理这些垃圾对象,会导致内存溢出。在回收时,还可以将内存碎片进行整理。(例如数组必须是连续空间存储)

1.4 内存溢出和内存泄漏

       内存溢出:经过垃圾回收后,内存中仍然无法创建新的对象,内存不够用溢出。

       内存泄漏:例如IO流没有close。JDBC连接运行结束后没有colse关闭,或是是生命周期很长的对象,一些经常不用的对象,但是垃圾回收器不能判断为垃圾,这些对象就默默的占用着内存,称为内存泄漏,大量的此类对象存在会导致出现内存溢出,也就是导致内存溢出的原因。

1.5 自动内存管理

好处:解放程序员,对内存管理更加合理,自动化。

缺点:对程序员管理内存的能力降低了,解决问题能力变弱了,不能调整垃圾回收的机制。

2.垃圾回收相关算法

2.1 标记阶段

作用:判断对象是否是垃圾对象,是否有引用指向对象。

          相关

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值