堆VS栈(head vs stack)
对比 | Heap 堆 | Stack 栈 |
1,内存分配方面: | 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 | 编译器(Compiler)自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈 |
2,申请方式 | 需要程序员自己申请,并指明大小 | 由系统自动分配 |
3,大小限制方面 | 不连续区域,慢 | 连续区域,快 |
4,效率方面 | 是由new分配的内存,一般速度比较慢,而且容易产生内存碎片,不过用起来最方便 | 由系统自动分配,速度较快。但程序员是无法控制的 |
详细请看:http://www.cnblogs.com/c2303191/articles/1065675.html
http://www.cnblogs.com/lxinxuan/archive/2007/01/24/629582.html