【发布时间】:2013-11-06 05:37:49
【问题描述】:
我想知道这两个有什么区别
String values[] = new String[10]
String[] values = new String[10]
两者的使用方式相同。我们可以用同样的方式操作它们中的数据,那有什么区别呢。
The Java tutorial 使用后者来声明数组。我们应该使用哪一个?
【问题讨论】:
-
作为,JavaDoc 更喜欢,使用第二个。
我想知道这两个有什么区别
String values[] = new String[10]
String[] values = new String[10]
两者的使用方式相同。我们可以用同样的方式操作它们中的数据,那有什么区别呢。
The Java tutorial 使用后者来声明数组。我们应该使用哪一个?
【问题讨论】:
根据语言specification:
[] 可能作为类型的一部分出现在 声明,或作为特定变量声明符的一部分, 或两者兼而有之。
所以是的,它们是相同的。 例如:
byte[] rowvector, colvector, matrix[];
这个声明相当于:
byte rowvector[], colvector[], matrix[][];
【讨论】:
两者都是相同的。这些只是数组声明的不同形式 以下是数组声明的不同方式
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
【讨论】:
真的只是个人喜好问题。我更喜欢String[],因为它清楚地表明 [] 属于变量的类型。但我想也可以找到使用旧语法的原因。
【讨论】:
它们是等价的。
第一个是更多c风格的语法,所以他们保留在java中。
【讨论】:
两者都是有效的语法,并产生完全相同的字节码。
Oracle(以及正式的 Sun 的)惯例是使用后一种形式 (String[] values = new String[10]),就像您遇到的几乎所有开源项目一样 - 即,这是您应该使用的。
【讨论】:
[] 可以作为类型的一部分出现在声明的开头,或者作为特定变量的声明符的一部分,或者两者兼而有之。
【讨论】: