该内容已被发布者删除 该内容被自由微信恢复。
文章于 2022年7月2日 被检测为删除。
被用户删除
近期技术热文 点击下方公众号
回复关键字【666】
领取资料
其他
Java面试官:为什么不把基本类型放堆中呢?
大家好,我是鸭哥。
为什么要把堆和栈区分出来呢?
第一,从软件设计的角度看,栈代表了处理逻辑,而堆代表了数据。这样分开,使得处理逻辑更为清晰。分而治之的思想。这种隔离、模块化的思想在软件设计的方方面面都有体现。
在 Java 中,Main 函数就是栈的起始点,也是程序的起始点。
程序要运行总是有一个起点的。同 C 语言一样,java 中的 Main 就是那个起点。无论什么 java 程序,找到 main 就找到了程序执行的入口。
堆中存什么?栈中存什么?
堆中存的是对象。栈中存的是基本数据类型和堆中对象的引用。一个对象的大小是不可估计的,或者说是可以动态变化的,但是在栈中,一个对象只对应了一个 4 btye 的引用(堆栈分离的好处)。
为什么不把基本类型放堆中呢?
因为其占用的空间一般是 1~8 个字节——需要空间比较少,而且因为是基本类型,所以不会出现动态增长的情况——长度固定,因此栈中存储就够了,如果把他存在堆中是没有什么意义的(还会浪费空间,后面说明)。可以这么说,基本类型和对象的引用都是存放在栈中,而且都是几个字节的一个数,因此在程序运行时,他们的处理方式是统一的。但是基本类型、对象引用和对象本身就有所区别了,因为一个是栈中的数据一个是堆中的数据。最常见的一个问题就是,Java 中参数传递时的问题。
来源:网络
有不少同学给鸭哥说,现在进大厂太难了!赚钱太难!因此,鸭哥特意邀请了华为、腾讯、阿里的朋友进群,与大家一起交流经验,一起增长技术。
有兴趣入群的同学,可长按扫描下方二维码,一定要备注:城市+昵称+技术方向,根据格式备注,可更快被通过且邀请进群。
▲长按扫描
我就知道你会点赞+“在看”