Java 实例"int[] intArray = new int[4];"形式的数组是什么类?



很明显,这些是一个类,对吧?但是我在它们上面找不到任何javadocapi。我可以找到一个Arrays类,它提供了处理这些类型数组的方法,但没有一个实际的类。我一直对此感到困惑。

它们是int[].class 的一个实例

new int[]{1,2,3,4} instanceof int[]; // true

来自Java语言规范

在Java编程语言中,数组是对象(§4.3.1),是动态创建的,可以分配给Object类型的变量(§4.3.2)。类Object的所有方法都可以在数组上调用

"new int[4]"是名为[I的类的实例,该类是一维整数数组的类。每个一维整数数组都是此类的实例

new int[x][y]是名为[[I的类的实例。new int[x][y][z]是名为[[I.的类的实例

注意到这里的图案了吗?

在后台,JMV有一个元类,在需要时从中实例化像[I、[[I或[[I这样的数组类型。相同的逻辑适用于所有基元类型。

最新更新