我理解当我使用关键字调用其构造函数时array,Java会创建一个对象new:
int[] myIntArray = new int[3];
Run Code Online (Sandbox Code Playgroud)
但如果我反而写
int[] myIntArray = {1,2,3};
Run Code Online (Sandbox Code Playgroud)
一个array对象被创建,但我还没有调用它的构造函数new.这是如何工作的 - 如何在不调用构造函数的情况下用Java创建对象?
就创建数组对象而言,它是语法糖.编译时,它的工作方式与标准语法完全相同.
不同之处在于,对于第一个版本,您没有填充数组 - 所有元素都是默认值int,即零.
在第二个版本中,您正在创建并填充数组.
这部分:
{1,2,3}
Run Code Online (Sandbox Code Playgroud)
是一个数组初始值设定项,可以用作声明的一部分.引用JLS,第10.6节:
可以在声明(第8.3节,第9.3节,第14.4节)中指定数组初始值设定项,或者作为数组创建表达式(第15.10节)的一部分,以创建数组并提供一些初始值.
ArrayInitializer:{VariableInitializersopt,opt}
| 归档时间: |
|
| 查看次数: |
189 次 |
| 最近记录: |