对象数组的内存分配

用户名

在我的计算机科学课程中,我们被教导说,当您创建阵列时,JVM将根据阵列的大小自动分配内存。例如,如果您创建一个大小为10的整数数组,则JVM将为该数组分配10 * 32位数据。

我的问题是,当您创建大小可变的对象数组时,此过程如何工作?例如一个String对象。当您创建一个由10个字符串组成的数组时,系统上是否实际上为这些字符串保留了任何内存,或者由于它们只是指针,因此不需要进行内存分配吗?

由于String是扩展Object类的类,并且Java中的对象通过引用传递(并存储在变量中),因此字符串数组是对String对象的引用数组所以,当你这样做

String[] a = new String[10];

您正在创建一个引用数组,其中每个引用(不是其指向的对象)的大小都是已知的(32位计算机为32位,而64位计算机为64位)。

更新:正如乔恩·斯基特(Jon Skeet)在他的一个回答中所说实际引用的大小可能与本机指针大小相同,但不能保证。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

指针数组的动态内存分配

来自分类Dev

如何在int数组中分配内存

来自分类Dev

内存分配而不创建对象

来自分类Dev

对象内存分配

来自分类Dev

C#对象比较和内存分配

来自分类Dev

为链接列表数组分配内存

来自分类Dev

数组数据类型的内存分配

来自分类Dev

了解char数组内存分配

来自分类Dev

为我将在std :: map中使用的对象数组分配和释放内存的正确方法

来自分类Dev

内存分配和char数组

来自分类Dev

结构和类对象数组的内存分配

来自分类Dev

什么样的内存分配给大小为零的数组对象?

来自分类Dev

预分配内存到对象数组

来自分类Dev

Java中的多维数组无效内存分配

来自分类Dev

创建时堆栈对象分配多少内存?

来自分类Dev

大数组如何分配内存?

来自分类Dev

取消向量对中对象的内存分配

来自分类Dev

对象数组的内存分配

来自分类Dev

C#对象比较和内存分配

来自分类Dev

内存分配与数组大小定义

来自分类Dev

多维数组对象分配

来自分类Dev

对象内对象的内存分配

来自分类Dev

使用数组分配内存

来自分类Dev

在未使用的对象上取消分配内存

来自分类Dev

大数组如何分配内存?

来自分类Dev

相邻数组的内存分配

来自分类Dev

C++中返回对象的内存分配

来自分类Dev

在 C++ 中销毁动态分配的内存(数组对象)

来自分类Dev

指针数组 - 内存分配