当前位置: 首页 > 面试题库 >

Java中的数组及其在内存中的存储方式

司徒宏远
2023-03-14
问题内容

我试图了解Java中的数组设置。创建数组后,为什么必须为数组中的每个对象初始化空间。它是如何存储在内存中的,如下所示:

[object][object]

或像这样:

[*class]->[object]  
[*class]->[object]

换句话说,实际上是在内存中执行的操作。是否array[0] = new class()仅返回对内存中保留位置的引用,并且该class[] array = new class[10]语句沿10个指针的行创建内容,这些指针随后由新语句分配?


问题答案:

阵列,Java软件商店的两件事情之一:要么基本值(intchar,…)或引用(又名指针)。

因此,仅为new Integer[10]10个Integer引用创建空间。它不会创建10个对象(甚至 不会
创建10个Integer对象的可用空间Integer)。

顺便说一句,这与字段,变量和方法/构造函数参数的工作方式完全相同:它们也仅存储原始值或引用。



 类似资料:
  • 主要内容:程序员的幽默计算机要处理的信息是多种多样的,如数字、文字、符号、图形、音频、视频等,这些信息在人们的眼里是不同的。但对于计算机来说,它们在内存中都是一样的,都是以二进制的形式来表示。 要想学习编程,就必须了解二进制,它是计算机处理数据的基础。 内存条是一个非常精密的部件,包含了上亿个电子元器件,它们很小,达到了纳米级别。这些元器件,实际上就是电路;电路的电压会变化,要么是 0V,要么是 5V,只有这两种电压。

  • JVM内存分为:1.方法区2.堆区3.堆栈4.PC寄存器5.本机堆栈 > 现在假设我有一个属性为“int[]dealCodes”(int基元数组)的类。根据内存管理,一旦处理代码初始化,内存中就会有连续内存分配(total_elements*4字节)。所以,如果数组大小为10,则JVM内存中有40字节的分配。 我的问题是,这40个字节将分配到哪个区域(堆还是堆栈)? 我对数组的理解是:它就像任何其

  • 初始化数据段 BSS 堆栈 堆 代码 现在考虑以下程序: 在上面的程序中,arr和x都是在main函数内本地声明的。我认为这意味着它们都将在函数堆栈上分配空间。但是,当我在linux上运行size命令时,我发现实际上正在为数组分配数据段中的空间。

  • 问题内容: 我想将方法​​返回的数组存储到另一个数组中。我怎样才能做到这一点? 当我调用此方法时,如何将返回的数组(z)存储到另一个数组中? 问题答案: 上面的方法不返回数组本身,而是返回对该数组的引用。在调用函数中,您可以在另一个引用中收集此返回值,例如: 此后还将引用之前引用的同一数组。 如果这不是您想要的,并且要创建阵列的副本,则可以使用创建副本。

  • 本文向大家介绍js的数组/对象在内存中分别是如何存储的?相关面试题,主要包含被问及js的数组/对象在内存中分别是如何存储的?时的应答技巧和注意事项,需要的朋友参考一下 JavaScript的对象是以一个描述ID、一个内容指针、以及跟随该对象的属性进行储存的。 当对象构造简单时,内容指针并不起作用,而所有属性直接跟在对象的内存地址之后。 比如对象,若其内存地址为0x1000,则该对象在内存中为 0x

  • 我不知道它是否可行,但我可以在数组中存储方法或函数吗?我现在知道多维数组,并使用它来存储我想要的许多数组。我现在想做的是将我创建的方法或函数存储在某个类中。因为我想将所有函数存储到某个类中,如果我想使用循环,就调用它。并使我的编码更简洁易懂。例子: 像那样?可能吗?