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

动态分配Java数组意味着什么?,java,Java,我知道如何用Java构建数组,非常简单。我只是想弄清楚,动态分配Java数组究竟意味着什么。提前感谢您的帮助 既然您了解了如何用Java构建数组,您就会注意到您可以这样做 int[] x = new int[someVariable]; 这将创建一个大小在编译时未知的数组,这意味着编译器无法分配数组或数组的空间,但必须在运行时(即动态)分配。因此,当这一行代码执行时,堆上的一些对象将被创建,当不再使用时,正常的垃圾收集机制将最终清理它 在Java中,同样的动态机制也用于在编译时已知大小的数组,

我知道如何用Java构建数组,非常简单。我只是想弄清楚,动态分配Java数组究竟意味着什么。提前感谢您的帮助

既然您了解了如何用Java构建数组,您就会注意到您可以这样做

int[] x = new int[someVariable];
这将创建一个大小在编译时未知的数组,这意味着编译器无法分配数组或数组的空间,但必须在运行时(即动态)分配。因此,当这一行代码执行时,堆上的一些对象将被创建,当不再使用时,正常的垃圾收集机制将最终清理它


在Java中,同样的动态机制也用于在编译时已知大小的数组,但在理论上——以及在其他语言中——存在静态分配的数组。

既然您了解如何在Java中构建数组,您就会注意到您可以这样做

int[] x = new int[someVariable];
这将创建一个大小在编译时未知的数组,这意味着编译器无法分配数组或数组的空间,但必须在运行时(即动态)分配。因此,当这一行代码执行时,堆上的一些对象将被创建,当不再使用时,正常的垃圾收集机制将最终清理它

在Java中,同样的动态机制也用于在编译时已知大小的数组,但在理论上——以及在其他语言中——存在静态分配的数组

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

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

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

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

太棒了,提洛,谢谢你的回答!太棒了,提洛,谢谢你的回答!