java的数组是"primitive type"吗?

Is java's array "primitive type"?

当我输入时:

int[] i = new int[3];

在我的 IntelliJ 中,我可以看到 "i" 有 "length" 属性 和 "clone" 方法。所以我真的很想知道,java 的 "Array" 是原始类型吗?我想只有 "objects" 应该有 属性 个方法吧?

或者 java 编译器或 jvm 做了一些特殊的事情,使数组成为原始类型 "just look like objects"?

请帮忙解释一下。谢谢!

java的数组是“原始类型”吗?

。 Java的数组是引用类型。您可以查看 java.lang.reflect.Array class 以了解其内部工作原理。例如,

int[] i = { 1, 2, 3 };
Object v = i;
System.out.println(v.getClass());
System.out.println(Array.get(v, 1));

产出

class [I
2