Java数组初始化,这三种方式有什么区别?

形式1:

Object[] params = null;
params = {1, 2, 3, 4};

形式2:

Object[] params = {1, 2, 3, 4};

形式3:

Object[] params = new Object[]{1, 2, 3, 4};

1.为什么第一种形式就是错的(编译阶段就报错),而第二种就可以呢?(第三种很显然)
2.第二种和第三种,哪种初始化方式更优呢?(或者有更好的?)


天涯尽头无女友
浏览 590回答 3
3回答

BIG阳

形式1Object[] params = {1, 2, 3, 4};这种声明方式其实只是Java初始化数组的语法糖,所谓语法糖只是为了方便码农,在实际执行中,Java会把它变成形式3,即Object[] params = new Object[]{1, 2, 3, 4};而Java并没有提供类似形式2的这种语法糖,所以这样使用是非法了。

隔江千里

Object[] params = null;params = new Object[]{1, 2, 3, 4};A. 语法规定楼主不需要太纠结B. 如果你预先知道数组元素,使用第Object[] params = {1, 2, 3, 4};声明数组代码更简洁,没有更优的说法。

扬帆大鱼

第一种的声明方式就是不正确的应该是Object[] params = new Object[length]我常用的是第二种
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java