JAVA栈和堆的优缺点

时间:2022-07-12 21:15:15

对象的引用存在栈中,对象的实体(分配给对象的变量)存在堆中。栈(stack)和堆(heap)都是java用来在RAM中存放数据的地方。JAVA自动管理栈和堆,程序员不能直接设置栈或堆。

栈的优势:存取速度比堆要快。

栈的缺点:存在栈的数据大小和生存期必须是确定的,缺乏灵活性。

堆的优势:可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动收走这些不在实用的数据。

堆的缺点:由于运行时要动态分配内存,存取速度慢。