在java中初始化数组时的堆栈和堆内存[重复]

Posted

技术标签:

【中文标题】在java中初始化数组时的堆栈和堆内存[重复]【英文标题】:Stack and heap memory when array is initialized in java [duplicate] 【发布时间】:2019-03-12 01:17:46 【问题描述】:

我有一个关于数组初始化时存储在内存中的什么位置的问题。

我了解局部变量和方法参数存储在堆栈中;对象存储在堆中。

我想知道的是,如果一个数组被初始化,它们在以下情况下的存储位置是否有区别? 假设它们在 main 方法中。

int[] a = 1,2,3,4,5;
int[] b = new int[a.length];

谢谢你的回答:)

【问题讨论】:

我很确定答案是否定的。这两个数组都存储在堆中。数组是对象,所以它们总是在堆上。 【参考方案1】:

两者应该没有任何区别,因为两者都存储在堆中。你可以查看链接what does a java array look like in memory

【讨论】:

以上是关于在java中初始化数组时的堆栈和堆内存[重复]的主要内容,如果未能解决你的问题,请参考以下文章

堆栈内存和堆内存之间的区别[重复]

堆栈和堆如何工作,内存存储(重复)[重复]

Java堆栈简介

集合

C++ 中堆栈、静态和堆内存的最大内存

两种语言是不是在 ram 上使用相同的堆栈和堆?