int a
定义一个原始 int。
int[] a = new int[1];
定义一个有空间容纳 1 个 int 的数组。
它们是两个非常不同的东西。原语上没有方法/属性,但数组上有属性(长度)和方法(特别是它的克隆方法和 Object 的所有方法)。
数组有点奇怪。它们在JLS中定义。
在实践中,当您需要与采用数组并对结果进行操作的 API 进行交互时,这样做是有意义的。传入对具有 0、1 或 n 个属性的数组的引用是完全有效的。定义具有 1 个元素的数组可能还有其他正当理由。
我想不出任何你想用一个元素定义一个数组的用例,只是为了绕过数组并获取元素。