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
当我输入时:
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