Java 数组是一种原始类型还是一种对象
在Java中 一个 数组是一个对象。 现在的问题是,这怎么可能呢?这背后的原因是什么?在Java中,我们可以用new操作符来创建数组,我们知道每个对象都是用new操作符创建的。因此我们可以说,数组也是一个对象。现在问题又来了,每次我们为一个类创建一个对象时,那么数组的类是什么?
- 在Java中,每一个数组类型都有一个类,所以有一个int[]的类,类似的还有float、double等。
- 数组类型的直接超类是Object。每个数组类型都实现了Cloneable和java.io.Serializable接口。
- 在Java编程语言中,数组是对象(§4.3.1),是动态创建的,并且可以被分配给Object类型的变量(§4.3.2)。所有Object类的方法都可以在一个数组上调用。
每个数组类型都有相应的类,这些类是java语言的一部分,程序员不能使用。要知道任何数组的类,我们可以采用以下方法。
// Here x is the name of the array.
System.out.println(x.getClass().getName());
// Java program to display class of
// int array type
public class Test
{
public static void main(String[] args)
{
int[] x = new int[3];
System.out.println(x.getClass().getName());
}
}
输出。
[I
注意: [I这是该数组的类,一[(方括号)因为它是一维的,I代表整数数据类型。
下面是一些数组类型的对应类名的表格: –
Array type Corresponding class Name
int[] [I
int[][] [[I
double[] [D
double[][] [[D
short[] [S
byte[] [B
boolean[] [Z
在Java编程语言中,数组是动态创建的对象,可以被分配给Object类型的变量。所有Object类的方法都可以在数组上调用。
// Java program to check the class of
// int array type
public class Test {
public static void main(String[] args)
{
// Object is the parent class of all classes
// of Java. Here args is the object of String
// class.
System.out.println(args instanceof Object);
int[] arr = new int[2];
// Here arr is also an object of int class.
System.out.println(arr instanceof Object);
}
}
输出。
true
true
极客教程