这段代码中是否有一些我在 Java 中看不到的隐藏含义?它有什么用处?
int[] a = new int[1];
不仅仅是
int a;
因为从我的角度来看它是一样的?
最佳答案
int a
定义一个原始 int。
int[] a = new int[1];
定义一个数组,该数组的空间可容纳 1 个 int。
它们是两种截然不同的东西。原语没有方法/属性,但数组有属性(长度)和方法(特别是它的克隆方法,以及对象的所有方法)。
数组有点奇怪。它们在 JLS 中定义.
在实践中,当您需要与采用数组并对结果进行操作的 API 进行交互时,这样做是有意义的。传递对具有 0、1 或 n 个属性的数组的引用是完全有效的。定义具有 1 个元素的数组可能还有其他正当理由。
我想不出任何用例,您想要定义一个包含一个元素的数组,只是为了绕过数组并获取元素。
关于java - 为什么 int[] a = new int[1] 而不是 int a?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6222531/