0

与数组的初始化有什么区别吗?

CharSequence colors[] = new CharSequence[] {"red", "green", "blue", "black"};
CharSequence colors[] = {"red", "green", "blue", "black"};
4

1 回答 1

1

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

作为参考,Java 语言规范声明

数组由数组创建表达式(第 15.10 节)或数组初始值设定项(第 10.6 节)创建。

其中数组创建表达式,即。部分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 [ ]

数组初始化器,即。部分{...},定义为

ArrayInitializer:
    { VariableInitializersopt ,opt }

VariableInitializers:
    VariableInitializer
    VariableInitializers , VariableInitializer  

VariableInitializer:
    Expression
    ArrayInitializer
于 2014-04-04T02:37:27.253 回答