首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我们在原始数据类型如‘`boolean`’中使用'new‘关键字来创建数组?

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

Stack Overflow用户
提问于 2015-01-29 12:25:04
回答 4查看 3.2K关注 0票数 3

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

现在,java中的new关键字用于创建对象的实例,例如,

代码语言:javascript
复制
String s3 = new String("foo")

代码语言:javascript
复制
String[] myStringArray = new String[3];

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

但是既然booleanint是原始数据类型,为什么在创建数组时对它们使用new关键字,

代码语言:javascript
复制
int[] myIntArray = new int[3];
int[] myIntArray = new int[]{1,2,3};
boolean[] array = new boolean[size];

new关键字不应该仅用于引用数据类型吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-01-29 12:26:29

因为当您执行int[] myIntArray = new int[3];时,您正在创建一个数组。数组也是一个对象。

代码语言:javascript
复制
public static void main(String[] args) {
    int[] arr = new int[5];
    System.out.println(arr instanceof Object);
}

O/P:

代码语言:javascript
复制
true

编辑:

如果查看字节码,就会调用新的int5。

1: newarray intnewarray被定义为这里

所以,基本上编译器是在向您隐藏真相:P

票数 10
EN

Stack Overflow用户

发布于 2015-01-29 12:30:10

新关键字引用您创建的数组。事实上,

在Java编程语言中,数组是对象,是动态创建的,可以分配给类型为Object的变量。类对象的所有方法都可以在数组上调用。

查看以获得更多详细信息

票数 3
EN

Stack Overflow用户

发布于 2015-01-29 12:28:59

数组是reference类型,因此您需要使用new操作符来创建它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28214703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档