Java 数组是一种原始类型还是一种对象

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程