Java初始化字符串数组

时间:2015-12-28 11:33:59

标签: java

我正在进行Java语法测试,我观察到了

String[] sA = new String[1]{"aaa"};

语法无效,而:

String[] sA = new String[]{"aaa"};

是有效的语法。

为什么会这样? Aren的两个声明是否相同?

3 个答案:

答案 0 :(得分:5)

因为在提供数组初始化程序时无法定义维表达式。

这意味着您可以指定维度或数组初始值设定项(即值)。您不能同时指定两者。

你的第二次初始化是正确的。

答案 1 :(得分:4)

第一种语法无效,因为您要声明数组的大小两次:

  • 一旦明确
  • 另一次因为{和}之间的字符串数组大小为1

两次做同样的事情会引入潜在的错误,所以java设计师决定只允许第二种方法。

答案 2 :(得分:3)

声明一个数组变量,创建一个数组,并将该数组的引用赋值给变量可以在一个语句中组合,如下所示:

dataType[] arrayRefVar = new dataType[arraySize];

或者,您可以按如下方式创建数组:

dataType[] arrayRefVar = {value0, value1, ..., valuek};

正如其他人提到的那样,当提供数组初始值设定项时,你无法定义维度表达式。"即你不能做这样的事情:

String[] sA = new String[1]{"aaa"};

此外,在声明变量时,请使用:

String names[] = {"x","y","z"};

但是,如果要分配数组的实例,则发布声明:

names = new String[] {"a","b","c"};

声明语法只是一个语法糖,在为变量赋值时不再适用,因为在赋值时需要正确创建实例。