之前给大家讲了一下java栈和堆的区别,下面又要给大家详细的讲一下java栈和堆分别存放的是什么,一起来详细的了解一下吧!
一、java栈、堆存放的是什么?
在java当中,栈中,存放的是基本数据类型和堆中对象的引用,而,堆中,存放的则是对象。
其他:
一个对象的大小,是不能够估计的,我们又可以这样说,是能够动态变化的,可是在栈中,一个对象就只对应了一个4btye的引用,这也是堆和栈分离的好处。
那么相信很多人都存在着这样的问题,就是为什么不把基本类型放到堆里面去呢?
一起来了解一下原因吧!
不把基本类型放到堆里面去,这主要就是因为,通常来说,它占用的空间都是1~8个字节,所需要的空间是较少的,除此之外,因为是基本类型,所以说,不会有动态增长的情况出现。
长度是固定的,所以,在栈中存储就是可以了的。
假如,将他存放在堆中,那么就是没有什么意义的了。
这样还只会造成空间的浪费。
可以这样讲吧,基本类型和对象的引用都是存放在栈中。
并且,都是几个字节的一个数,所以,在程序运行的时候,他们的处理方法都是统一的。
但是,基本类型和对象引用以及对象本身是存在着区别的哦。
因为,一个是栈中的数据一个是堆中的数据。
其中,比较常见的问题就是,java中参数传递的时候的问题。
延伸阅读
如何通俗的理解栈和堆?
栈就好比去吃饭,我们只要负责点菜(发出申请),付钱吃饭(使用),吃饱就走,至于做菜的过程等等一系列的工作我们都不必理会,好处就是快捷,可是自由度较小。
使用堆就好比于自己动手做菜吃,过程比较麻烦,但是符合自己的口味,并且,自由度大。
以上就是关于java栈存放什么和堆存放什么的内容解答了,你都清楚了吧,两者存放的东西是不一样的哦。
更多java常见问题,请继续关注奇Q工具网来了解吧。
推荐阅读: