首页 > 代码库 > 堆和栈的区别以及衍生出来的栈的效率为什么比堆高

堆和栈的区别以及衍生出来的栈的效率为什么比堆高

栈与堆都是Java用来在Ram中存放数据的地方。


栈中主要存放一些基本类型的变量(,int, short, long, byte, float, double, boolean, char)。 存在栈中的数据可以共享。栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。


堆是一个运行时数据区,类的(对象从中分配空间。由于要在运行时动态分配内存,存取速度较慢。 存在栈中的数据可以共享。


栈是编译时分配空间,而堆是动态分配(运行时分配空间),所以栈的速度快 
cpu有专门的寄存器(esp,ebp)来操作栈,堆都是使用间接寻址的。栈快点。 

堆和栈的区别以及衍生出来的栈的效率为什么比堆高