Stack(栈)和Heap(堆)的区别
Stack 和 Heap在程序运行时均可用来存放对象,均存在于RAM中,那么二者有什么区别呢?
Stack:
1. 处理器经由指针(stack pointer)提供直接支持。当程序分配一块新的内存时,stack指针变往后移;释放内存时,指针往前移回。
2.效率高,速度仅次于寄存器。
Heap:
1. 编译器不需要知道究竟得从heap中分配多少空间,也不需知道从heap上分配的空间究竟需要存在多久。因此,自heap分配存储空间可以获得高度的弹性。每当你需要产生对象,只需在程序代码中new一下,当它在执行的时候,便会自heap分配空间。
2. 效率低,耗时长。
版权声明:本文为博主原创文章,未经博主允许不得转载。