gpt4 book ai didi

java - 初始化的java数组是进入栈还是堆?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:31:26 28 4
gpt4 key购买 nike

void someMethod() {
byte[] array = { 0, 0 };
}

这个数组是存放在堆中还是栈中?

最佳答案

您可以认为它总是在堆上。

我相信一些智能 VM 能够在检测到对象安全的情况下堆栈分配对象 - 但从概念上讲它在堆上。特别是,所有数组类型都是引用类型(即使元素类型是原始类型),所以 array 变量(在堆栈上)只是对对象的引用,对象通常继续堆。

特别是,想象一个小的变化:

byte[] someMethod() { 
byte[] array = { 0, 0 };
return array;
}

如果数组分配在堆栈上,返回的引用必须引用什么?

关于java - 初始化的java数组是进入栈还是堆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3474852/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com