安卓技术

安卓技术-堆与栈

2020-02-23  本文已影响0人  七色瑾林

1. 空间分配

栈:由系统自动分配、释放
堆:一般由程序员分配与释放,或者垃圾回收

2. 缓存方式

栈:一级缓存,调用时存入,用完立即释放
堆:二级缓存,生命周期与垃圾回收有关

3. 数据结构

栈:先进后出
堆:完全二叉树

4. 其他

空间大小:栈一般只有几M,堆可能无限几G。
碎片产生:栈没有碎片,堆会产生碎片。
生长方向:栈向下,堆向上。
分配方式:栈动静结合,堆仅动态分配。
分配效率:栈高,堆低。


附录:

Java内存分配:栈区,堆区,方法区(静态区)。
C语言内存分配:栈区,堆区,全局区(静态区),文字常量区,程序代码区。

上一篇 下一篇

猜你喜欢

热点阅读