面试题:为什么不把基本数据类型放在堆中
1、为什么要把堆和栈区分出来?
(1)栈代表处理逻辑,堆代表存储数据
(2)堆和栈分离,让堆中的数据可以被多个栈共享,提供了数据交互的方式,,堆的数据可以被多个栈访问节约了存储空间
(3)栈是只能向上增长的,限制了栈的存储能力,堆可以动态增长的
(4)面向对象就是堆和栈的完美结合
2、什么是堆和栈?
堆中存的是对象,栈中存的是对象的引用和基本数据类
3、堆栈分离的好处
对象的大小是不可估量的,但是一个对象的引用只有4byte左右
4、为什么不把基本数据类型放在堆中?
(1)基本数据类型占用的空间一般是1-8个字节,需要占用空间比较少
(2)基本数据类型不存在自动增长,长度是固定的,因此存在堆中没有意义,还会浪费空间