java栈存放什么?java堆存放什么?

KLQ 2020-06-10 09:59:47 java常见问答 7732

之前给大家讲了一下java栈和堆的区别,下面又要给大家详细的讲一下java栈和堆分别存放的是什么,一起来详细的了解一下吧!

一、java栈、堆存放的是什么?

在java当中,栈中,存放的是基本数据类型和堆中对象的引用,而,堆中,存放的则是对象。

其他:

一个对象的大小,是不能够估计的,我们又可以这样说,是能够动态变化的,可是在栈中,一个对象就只对应了一个4btye的引用,这也是堆和栈分离的好处。

那么相信很多人都存在着这样的问题,就是为什么不把基本类型放到堆里面去呢?

一起来了解一下原因吧!

不把基本类型放到堆里面去,这主要就是因为,通常来说,它占用的空间都是1~8个字节,所需要的空间是较少的,除此之外,因为是基本类型,所以说,不会有动态增长的情况出现。

长度是固定的,所以,在栈中存储就是可以了的。

假如,将他存放在堆中,那么就是没有什么意义的了。

这样还只会造成空间的浪费。

可以这样讲吧,基本类型和对象的引用都是存放在栈中。

并且,都是几个字节的一个数,所以,在程序运行的时候,他们的处理方法都是统一的。

但是,基本类型和对象引用以及对象本身是存在着区别的哦。

因为,一个是栈中的数据一个是堆中的数据。

其中,比较常见的问题就是,java中参数传递的时候的问题。

延伸阅读

如何通俗的理解栈和堆?

栈就好比去吃饭,我们只要负责点菜(发出申请),付钱吃饭(使用),吃饱就走,至于做菜的过程等等一系列的工作我们都不必理会,好处就是快捷,可是自由度较小。

使用堆就好比于自己动手做菜吃,过程比较麻烦,但是符合自己的口味,并且,自由度大。

以上就是关于java栈存放什么和堆存放什么的内容解答了,你都清楚了吧,两者存放的东西是不一样的哦。

更多java常见问题,请继续关注奇Q工具网来了解吧。

推荐阅读:

java栈的特点是什么?java的堆和栈的优缺点介绍

java栈实现方法都有哪些?要怎么实现?

java栈溢出是什么原因?java栈溢出模拟示例