在java中,两种数据类型是引用类型和基本类型。引用类型是对象的引用,而基本类型直接包含值。
现在,java中的new
关键字用于创建Object的实例,例如,
String s3 = new String("foo")
或
String[] myStringArray = new String[3];
这没关系,因为String
是一个类而不是原始数据类型。
但由于boolean
或int
是原始数据类型,为什么我们在创建数组时使用new
关键字,
int[] myIntArray = new int[3];
int[] myIntArray = new int[]{1,2,3};
boolean[] array = new boolean[size];
不应该{* 1}}关键字仅用于参考数据类型吗?
答案 0 :(得分:10)
因为当您执行int[] myIntArray = new int[3];
时,您创建数组 ..而且数组也是对象。
public static void main(String[] args) {
int[] arr = new int[5];
System.out.println(arr instanceof Object);
}
O / P:
true
编辑:
如果查看字节代码,您将调用new int [5]
1: newarray int
和newarray
定义为here。
所以,基本上编译器隐藏了你的真相:P
答案 1 :(得分:3)
答案 2 :(得分:2)
数组是reference
类型,因此您需要使用new
运算符来创建它。
答案 3 :(得分:0)
数组是可以分配给Object类型变量的对象