android垃圾回收garbage collection

栈不存在垃圾回收的问题, 直接压栈就可以了。

堆的话,需要复杂的垃圾回收机制。

垃圾回收是对堆来进行操作,堆中的对象是否有效, 是通过遍历堆栈来获取的, 就是一个引用计数的问题。

一个引用类型的实例化过程:

Class a = new Class();

1) Class a 的时候, 生成一个空的引用指针,并把他压栈到栈中。

2)new Class() 生成一个类的实例, 并且在堆上分配对应内存。

3 ) = 赋值的时候, a的引用指向新生成的实例。


当堆中的对象不再被栈中的任何变量引用的时候,就需要对这个对象进行垃圾回收。


系统变慢的一个很主要的原因就是,随着系统运行时间的增长, 内存碎片也会越来越多。就是因为程序反复在堆中创建和释入变量。久而久之,可用变量将不再是联系的内存空间。 为了寻址这些可用变量, 系统也会增加开销。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值