为什么我们使用'new'关键字和原始数据类型如`boolean`来创建数组?

bhu*_*esh 2 java

在java中,两种数据类型是引用类型和基本类型.引用类型是对象的引用,而基本类型直接包含值.

现在,newjava中的关键字用于创建Object的实例,例如,

String s3 = new String("foo")
Run Code Online (Sandbox Code Playgroud)

要么

String[] myStringArray = new String[3];
Run Code Online (Sandbox Code Playgroud)

这是可以的,因为它String是一个类而不是原始数据类型.

但由于boolean或是int原始数据类型,为什么我们new在创建数组时使用关键字,

int[] myIntArray = new int[3];
int[] myIntArray = new int[]{1,2,3};
boolean[] array = new boolean[size];
Run Code Online (Sandbox Code Playgroud)

不宜new关键字只参照数据类型使用?

The*_*ind 10

因为当你这样做的时候int[] myIntArray = new int[3];你正在创建一个数组 ..而一个数组也是一个对象.

public static void main(String[] args) {
    int[] arr = new int[5];
    System.out.println(arr instanceof Object);
}
Run Code Online (Sandbox Code Playgroud)

O/P:

true
Run Code Online (Sandbox Code Playgroud)

编辑:

如果查看字节代码,您将调用new int [5]

1: newarray int在此处newarray定义.

所以,基本上编译器隐藏了你的真相:P