是一个数组在java中的对象

在Java中,我们可以声明一个数组

String[] array = new String[10]; int size = array.length; 

这是否意味着数组本身是一个对象? 因为在C ++中,数组只是一个指针,并没有任何方法。

是。

Java语言规范部分4.3.1以:

一个对象是一个类实例或一个数组。

是; Java语言规范写道 :

在Java编程语言中,数组是对象(第4.3.1节),是dynamic创build的,可以分配给Objecttypes的variables(第4.3.2节)。 类Object的所有方法都可以在数组上调用。

那么,让我们问一下Java!

 public class HelloWorld { public static void main(String[] args) { System.out.println(args instanceof Object); int[] someIntegers = new int[] {42}; System.out.println(someIntegers instanceof Object); } } 

输出:

 true true 

是的,这是Java中的一个对象。

另外请注意,当你做array.length你不是调用任何方法,只是访问数组的length字段。 Arrays类中有很多静态方法。

我会说答案是肯定的,但我可以补充一点,严格来说,数组也是C ++中的一个对象。 从当前标准(FDIS)的§1.8[intro.object]:

一个对象是一个存储区域。

注意Java中的数组有自己的字节代码,这些代码不会与对象共享。 它们当然是对象,但在低级别处理方式稍有不同。

我只想添加数组在reflectionAPI中有一个表示 – java.lang.reflect.Array 。

java中的每个数组都是一个对象ex int [] a = new int [2]; 所以new用于创build一个对象,因为它是一个对象,我们可以使用a.getClass()。getName()来检查类名。