看了一眼,我似乎无法找到与此相同的问题。我的问题是关于Java中的int[]
。
创建int[]
时,使用以下语法:
int[] x = new int[5];
属于int[]
的方法也让我认为它是Object
,但它不遵循类的Java命名约定,这让我感到困惑。它也是一个基本类型的数组,可以像原语一样使用。
int[]
(或我猜的任何原始数组)是一个对象还是一个原语?
答案 0 :(得分:7)
Java中的数组是Object
的子类,因此它是一个对象类型 - 即使它包含基本类型。你可以查看:
int[] x = new int[5];
if (x instanceof Object)
System.out.println("It's an Object!");
答案 1 :(得分:3)
Java中的所有数组都被视为对象。您可以看到此in the Java Language Specification, Ch. 10:
在Java编程语言中,数组是对象(§4.3.1),是动态创建的,可以分配给Object类型的变量(§4.3.2)。可以在数组上调用Object类的所有方法。
类型int[]
是Object
的子类,其中包含Object
的所有方法。虽然从语法上看它看起来与其他对象类型不同(例如,名称中有一个原始类型,并且没有类定义),但Java语言确实将它们视为对象。
希望这有帮助!
答案 2 :(得分:0)
“数组是一个容器对象,它包含固定数量的单一类型的值。”。这就是在oracle tutorials中定义数组的方式。所以不仅原始数组而且对象数组都是Object本身
答案 3 :(得分:-1)
int[] x = new int[5];
Object a=(Object)x;
int[] y= (int[])a;