为什么int [] a = new int [1]而不仅仅是int?

Ser*_*gey 7 java integer

这段代码中是否有一些隐藏的含义,我在java中没有看到?它有什么用?

int[] a = new int[1];
Run Code Online (Sandbox Code Playgroud)

而不仅仅是

int a;
Run Code Online (Sandbox Code Playgroud)

因为从我的观点来看它是一样的吗?

hvg*_*des 16

int a
Run Code Online (Sandbox Code Playgroud)

定义一个原始int.

int[] a = new int[1];
Run Code Online (Sandbox Code Playgroud)

定义一个有空间来容纳1个int的数组.

它们是两个非常不同的东西.原语上没有方法/属性,但是数组上有属性(长度)和方法(特别是它的on clone方法,以及Object的所有方法).

数组是一个奇怪的野兽.它们在JLS中定义.

实际上,当您需要与采用数组并对结果进行操作的API进行交互时,这样做是有意义的.传递对具有0,1或n属性的数组的引用是完全有效的.可能有其他正当理由来定义具有1个元素的数组.

我想不出你想要用一个元素定义数组的任何用例,只是绕过数组并获取元素.


Meh*_*dad 7

一个在堆栈上,一个在堆上.