我目前正在以导师的身份教授学生编程约定。我告诉他们,他们可以在Oracle 代码约定中找到大多数约定。
在我的上一个教程中,一个学生问:
public static void main(String args[])
或者
public static void main(String[] args)
是按惯例写的,或者如果有区别。我以前从未见过第一个版本,所以我很确定第二个是约定。但我没有那个来源。
你能给我一个来源(最好来自oracle,就像我上面链接的页面),它可以清楚地说明两者中的哪一个是约定?
两个表达式的等价
我知道这两个表达式是等价的:
JLS 7,页。292 条状态:
An array type is written as the name of an element type followed
by some number of empty pairs of square brackets [].
但也在第。293:
The [] may appear as part of the type at the beginning of the declaration,
or as part of the declarator for a particular variable, or both.
For example:
byte[] rowvector, colvector, matrix[];
This declaration is equivalent to:
byte rowvector[], colvector[], matrix[][];
但这对约定问题没有帮助。
所以它们是相同的(不是规格,但这里有一个来源)。它们在一个小例子中产生相同的字节码,所以我很确定它们在实践中也是相同的。