校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > java语言 > jvm内存结构
题目

关于JAVA堆,下面说法错误的是()?

A.所有类的实例和数组都是在堆上分配内存的

B.堆内存由存活和死亡的对象,空闲碎片区组成

C.数组是分配在栈中的

D.数组是分配在栈中的

解答

正确答案是 C

比如说int[] arr = new int[3]。空间分布是这样子的。

所以这句话其实应该改为,数组的引用存在栈内存中,而数组对象保存在堆里面。


C 7条回复 评论
假期

.cccccccc

发表于 2021-03-16 11:59:06
0 0
Vv~Vv

123456打卡

发表于 2021-03-16 11:06:11
0 0
hentai111

数组的引用在崭中,值在堆中

发表于 2018-10-11 19:43:12
0 0
令白敬亭疯狂的女人

Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。这个区域是用来存放对象实例的,几乎所有对象实例都会在这里分配内存。堆是Java垃圾收集器管理的主要区域(GC堆),垃圾收集器实现了对象的自动销毁。Java堆可以细分为:新生代和老年代;再细致一点的有Eden空间,From Survivor空间,To Survivor空间等。Java堆可以处于物理上不连续的内存空间中,只要逻辑上是连续的即可,就像我们的磁盘空间一样。可以通过-Xmx和-Xms控制

发表于 2018-10-11 19:43:02
0 0
哒宝蛋1

数组是引用类型 放在堆

发表于 2018-10-11 19:42:50
0 0
高作恒

最新的虚拟机,所有new出来的对象都在堆中,包括static的成员类变量,和final,和局部变量。


发表于 2018-10-11 19:42:43
0 0
皮卡皮卡

感觉第一个有点问题,Java类的实例不是所有的都是堆上分配的,如果是比较小的对象,且没有逃逸的,是在栈上分配的。

发表于 2018-10-11 19:42:36
0 0