说明 Heap 与 Stack 的区别?

来源:互联网 发布:书法装裱软件 编辑:程序博客网 时间:2024/05/16 14:11

Heap 是堆,Stack 是栈,堆和栈都是程序用来在内存中存放数据的地方,程序员不能直接操作堆栈。
JAVA的堆是一个运行时数据区,类的对象从堆中分配空间,堆是由垃圾回收机制来管理的,堆的优势是可以动态的分配大小,生存期也不用事先告诉编译器,因为它是动态分配内存的,垃圾收集器会自动收走不再使用的数据,缺点是由于动太分配内存,存储速度比栈要慢;
栈主要存放一些基本数据类型变量和对象的句柄,栈的优势是存储速度快,仅次于寄存器,缺点是栈中的数据大小和生存期必须事先告诉编译器。

原创粉丝点击