堆和栈的区别
2016-09-19 本文已影响0人
琼花落尽lxn
堆
主要存放对象的实例,由垃圾回收器来负责,堆的优势是可以动态的分配内存大小,生存期也不必事先告诉编译器,因为它是在运行期动态分配内存的,Java的垃圾收集器会自动回收不再使用的数据,但缺点是:由于要在运行时动态分配内存,存取速度比较慢。
栈
存取速度比堆块,仅次于寄存器,栈数据可以共享,但缺点是:存在栈中的数据大小与生存周期必须是确定的,缺乏灵活性。
主要存放对象的实例,由垃圾回收器来负责,堆的优势是可以动态的分配内存大小,生存期也不必事先告诉编译器,因为它是在运行期动态分配内存的,Java的垃圾收集器会自动回收不再使用的数据,但缺点是:由于要在运行时动态分配内存,存取速度比较慢。
存取速度比堆块,仅次于寄存器,栈数据可以共享,但缺点是:存在栈中的数据大小与生存周期必须是确定的,缺乏灵活性。