配列の初期化に違いはありますか?
CharSequence colors[] = new CharSequence[] {"red", "green", "blue", "black"};
CharSequence colors[] = {"red", "green", "blue", "black"};
配列の初期化に違いはありますか?
CharSequence colors[] = new CharSequence[] {"red", "green", "blue", "black"};
CharSequence colors[] = {"red", "green", "blue", "black"};
いいえ、ありません。それらは同じバイトコードにコンパイルされます。
参考までに、Java 言語仕様には次のように記載されています。
配列は、配列作成式 (§15.10) または配列初期化子 (§10.6) によって作成されます。
where配列作成式、すなわち。部分は、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