Android开发中的栈、堆、垃圾回收器及UI操作
1. 栈、堆与垃圾回收机制
在Android开发里,栈(Stack)和堆(Heap)是内存管理的关键概念,垃圾回收器(Garbage Collector)则在其中发挥着重要作用。
- 垃圾回收机制原理
- Dalvik虚拟机(DVM)会追踪所有对象并将它们存于堆中。在应用运行期间,DVM会定期扫描栈,把栈中的引用和堆里的对象进行匹配。若发现堆里的对象没有对应的引用,就会将其销毁,这在Java术语里叫做垃圾回收。
- 可以把垃圾回收想象成一辆挑剔的垃圾车在堆中穿梭,扫描对象以匹配栈中的引用。没有引用的对象就会被当作垃圾处理。
- 若一个对象没有引用变量,我们就无法对其进行任何操作,因为根本没办法访问它。垃圾回收系统能释放未使用的内存,让应用运行得更高效。要是让开发者手动处理这个任务,代码会变得复杂得多。
- 栈和堆的特点
1. 对象删除方式 :开发者无需手动删除对象,虚拟机在认为合适的时候会调用垃圾回收器,通常是对象没有活跃引用的时候。
2. 局部变量和方法 :局部变量和方法存于栈中,局部变量只在声明它的方法内可见。
3. 实例/类变量 :实例或类变量连同它们的对象存于堆中,但对象的引用(地址)是栈中的局部变量。
4. 内存控制 :开发者能控制栈中的内容,可通过引用使用堆里的对象。
5. 堆的管理 :垃圾回收器
超级会员免费看
订阅专栏 解锁全文
12

被折叠的 条评论
为什么被折叠?



