这两个数组初始化之间有什么区别吗?

最佳答案

不是,没有。它们将被编译成相同的字节码。

作为参考,Java Language Specification states


数组是由数组创建表达式(第15.10节)或
数组初始化程序(§10.6)。


其中array creation expression,即new CharSequence[]部分定义为

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 [ ]


array initializer,即。 {...}部分定义为

ArrayInitializer:
    { VariableInitializersopt ,opt }

VariableInitializers:
    VariableInitializer
    VariableInitializers , VariableInitializer

VariableInitializer:
    Expression
    ArrayInitializer

10-04 14:49