4

i was wondering whats the difference between these two

String values[] = new String[10]

String[] values = new String[10]

Both of these are used the same way. We can manipulate data in them the same way so whats the difference.

The Java tutorial uses the latter one for declaring arrays. Which one should we use ?

4

6 回答 6

1

两者都是相同的。这些只是数组声明的不同形式以下是数组声明的不同方式

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

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

在所有情况下x.length都会输出 3

于 2013-11-06T05:39:18.893 回答
1

根据语言规范

[] 可以作为类型的一部分出现在声明的开头,或者作为特定变量的声明符的一部分,或者两者兼而有之。

所以是的,它们是一样的。例如:

byte[] rowvector, colvector, matrix[];

这个声明等价于:

byte rowvector[], colvector[], matrix[][];
于 2013-11-06T05:44:50.080 回答
0

真的只是个人喜好问题。I Prefer String[],因为它清楚地表明 [] 属于变量的类型。但我想也可以找到使用旧语法的原因。

于 2013-11-06T05:39:47.710 回答
0

它们是等价的。

第一个是更多 c 风格的语法,所以他们把它保存在 java 中。

于 2013-11-06T05:40:08.977 回答
0

两者都是有效的语法,并产生完全相同的字节码。Oracle 的(以及正式的 Sun 的)惯例是使用后一种形式 ( String[] values = new String[10]),您遇到的几乎所有开源项目都会使用 - 即,您应该使用这种形式。

于 2013-11-06T05:40:15.667 回答
0

根据JLS on Arrays

[] 可以作为类型的一部分出现在声明的开头,或者作为特定变量的声明符的一部分,或者两者兼而有之。

于 2013-11-06T05:42:39.520 回答