Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 声明字符串数组的不同之处_Java_Arrays_String - Fatal编程技术网

Java 声明字符串数组的不同之处

Java 声明字符串数组的不同之处,java,arrays,string,Java,Arrays,String,这两者有什么区别: String [] columns = new String []{KEY_ROWID, KEY_TITLE, KEY_DESC, KEY_TIME}; 这是: String [] columns={KEY_ROWID, KEY_TITLE, KEY_DESC, KEY_TIME}; 没有 后一个版本是一种方便的快捷语法,只在声明语句中有效,但结果完全相同。它们生成相同的字符串数组实例化(仅在声明中可用),所获得的结果没有任何差异。然而,我大多选择第一个(只是个人喜好)

这两者有什么区别:

String [] columns = new String []{KEY_ROWID, KEY_TITLE, KEY_DESC, KEY_TIME};
这是:

String [] columns={KEY_ROWID, KEY_TITLE, KEY_DESC, KEY_TIME};
没有


后一个版本是一种方便的快捷语法,只在声明语句中有效,但结果完全相同。

它们生成相同的字符串数组实例化(仅在声明中可用),所获得的结果没有任何差异。然而,我大多选择第一个(只是个人喜好)


编辑:很抱歉,我正在键入第一个答案。

第一行使用包含数组初始值设定项的数组创建表达式,第二行仅包含数组初始值设定项。在这里,它们执行相同的功能——创建和初始化数组。但只有一个在声明数组时才有效

委员会:

数组初始值设定项可在声明中指定(§8.3、§9.3、§14.4),或作为数组创建表达式的一部分(§15.10)

第15.10节定义了数组创建表达式,要求
newsometype[]

数组创建表达式用于创建新数组(§10)


因此,如果
newsometype[]
部分是数组变量声明的一部分,则可以省略它,但必须在其他地方包括它,例如赋值表达式。

没有区别。大多数人喜欢第二个,因为它有点速记。太复杂了……我还是个喜欢java的孩子。不过,谢谢你这么深入。
ArrayInitializer:
    { VariableInitializersopt ,opt }

VariableInitializers:
    VariableInitializer
    VariableInitializers , VariableInitializer
ArrayCreationExpression:
     new PrimitiveType DimExprs Dimsopt
     new ClassOrInterfaceType DimExprs Dimsopt
     new PrimitiveType Dims ArrayInitializer 
     new ClassOrInterfaceType Dims ArrayInitializer

DimExprs:
     DimExpr
     DimExprs DimExpr

DimExpr:
     [ Expression ]

Dims:
     [ ]
     Dims [ ]