int 是一个对象吗?

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

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

 int[] x = new int[5]; 

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

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

Java中的数组是Object的子类,因此它是一个对象类型 – 即使它包含基本类型。 你可以检查一下:

 int[] x = new int[5]; if (x instanceof Object) System.out.println("It's an Object!"); 

Java中的所有数组都被视为对象。 您可以在Java语言规范中看到这一点。 10:

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

int[]类型是Object的子类,它包含Object所有方法。 虽然从语法上看它看起来与其他对象类型不同(例如,名称中列出了原始类型,并且没有类定义),但Java语言确实将它们视为对象。

希望这可以帮助!

“数组是一个容器对象,它包含固定数量的单一类型的值。”这就是在oracle教程中定义数组的方式。因此,不仅原始数组而且对象数组本身也是一个对象。

 int[] x = new int[5]; Object a=(Object)x; int[] y= (int[])a;