动态分配Java数组意味着什么?

时间:2019-06-25 03:39:46

标签: java

我了解如何用Java构建数组,非常简单。我只是想绕开Java数组动态分配的实际含义。预先感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

由于您了解如何使用Java构建数组,因此您会注意到可以这样做

int[] x = new int[someVariable];

这将创建一个在编译时未知大小的数组,这意味着该数组(​​或更确切地说,它的空间)不能由编译器分配,而是必须在运行时即动态分配。因此,当执行此行代码时,将在堆上创建一些对象,并且当不再使用该对象时,普通的垃圾回收机制最终将对其进行清理。

在Java中,相同的动态机制也用于在编译时知道大小的数组,但是从理论上讲-和在其他语言中-都是静态分配的数组。

答案 1 :(得分:1)

  

动态分配Java数组意味着什么?

这种目的并不常见。
我会说这是正确的,但在数组上下文中有点误导。
在Java中,所有(对象,类,基元)都在运行时分配:在编译时实际上没有分配任何东西。
因此,是的,数组也可以动态分配,但动态分配并不意味着一定要可调整大小:因为证据ArrayList和数组在运行时已分配,但只有前者可以调整大小。