在java中,这两种数据类型是引用类型和基元类型。引用类型是对对象的引用,而基本类型直接包含值。
现在,java中的new关键字用于创建对象的实例,例如,
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];new关键字不应该仅用于引用数据类型吗?
发布于 2015-01-29 12:26:29
因为当您执行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编辑:
如果查看字节码,就会调用新的int5。
1: newarray int和newarray被定义为这里。
所以,基本上编译器是在向您隐藏真相:P
发布于 2015-01-29 12:30:10
新关键字引用您创建的数组。事实上,
在Java编程语言中,数组是对象,是动态创建的,可以分配给类型为Object的变量。类对象的所有方法都可以在数组上调用。
查看这以获得更多详细信息
发布于 2015-01-29 12:28:59
数组是reference类型,因此您需要使用new操作符来创建它。
https://stackoverflow.com/questions/28214703
复制相似问题