堆
主要存放对象的实例,由垃圾回收器来负责,堆的优势是可以动态的分配内存大小,生存期也不必事先告诉编译器,因为它是在运行期动态分配内存的,Java的垃圾收集器会自动回收不再使用的数据,但缺点是:由于要在运行时动态分配内存,存取速度比较慢。
栈
存取速度比堆块,仅次于寄存器,栈数据可以共享,但缺点是:存在栈中的数据大小与生存周期必须是确定的,缺乏灵活性。
主要存放对象的实例,由垃圾回收器来负责,堆的优势是可以动态的分配内存大小,生存期也不必事先告诉编译器,因为它是在运行期动态分配内存的,Java的垃圾收集器会自动回收不再使用的数据,但缺点是:由于要在运行时动态分配内存,存取速度比较慢。
存取速度比堆块,仅次于寄存器,栈数据可以共享,但缺点是:存在栈中的数据大小与生存周期必须是确定的,缺乏灵活性。
本文标题:堆和栈的区别
本文链接:https://www.haomeiwen.com/subject/kctnettx.html
网友评论