Java中堆和栈的区别
区别项 | 堆 | 栈 |
---|---|---|
存放的东西 | 类的对象:这些对象通过new等指令建立,通过垃圾回收器来销毁。 | 栈中主要存放一些基本数据类型的变量(byte,short,int,long,float,double,boolean,char)和对象的引用。 |
存取速度 | 存取速度较慢 | 比堆快 |
数据区属于的阶段 | 运行时数据区 | 编译时数据区 |
内存空间 | 可以动态地分配内存空间 | 存放在栈中的数据占用多少内存空间需要在编译时确定下来 |
区别项 | 堆 | 栈 |
---|---|---|
存放的东西 | 类的对象:这些对象通过new等指令建立,通过垃圾回收器来销毁。 | 栈中主要存放一些基本数据类型的变量(byte,short,int,long,float,double,boolean,char)和对象的引用。 |
存取速度 | 存取速度较慢 | 比堆快 |
数据区属于的阶段 | 运行时数据区 | 编译时数据区 |
内存空间 | 可以动态地分配内存空间 | 存放在栈中的数据占用多少内存空间需要在编译时确定下来 |