int []是一个对象吗?

时间:2013-05-13 17:32:48

标签: java arrays object

看了一眼,我似乎无法找到与此相同的问题。我的问题是关于Java中的int[]

创建int[]时,使用以下语法:

int[] x = new int[5];

属于int[]的方法也让我认为它是Object,但它不遵循类的Java命名约定,这让我感到困惑。它也是一个基本类型的数组,可以像原语一样使用。

int[](或我猜的任何原始数组)是一个对象还是一个原语?

4 个答案:

答案 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;