gpt4 book ai didi

Java 数组约定 : String[] args vs. 字符串 args[]

转载 作者:IT老高 更新时间:2023-10-28 20:47:17 25 4
gpt4 key购买 nike

我目前正在以导师的身份教授学生编程约定。我告诉他们,他们可以在 the Oracle Code Conventions 中找到大多数约定。 .

在我的上一个教程中,一个学生问:

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[][];

但这对约定问题没有帮助。

所以它们是相同的(不是规范,但这里是 source )。它们在一个小例子中产生相同的字节码,所以我很确定它们在实践中也是相同的。

最佳答案

这不是来自 Oracle,但我认为它会有所帮助。

来自 Kathy Sierra 的书SCJP Sun Certified Programmer for Java 6

int[] key;
int key [];

当声明一个数组引用时,你应该总是把数组括号放在紧跟在声明的类型之后,而不是在标识符之后(变量姓名)。这样,任何阅读代码的人都可以轻松判断,例如,key 是引用一个 int 数组对象,而不是一个 int 原语。

关于Java 数组约定 : String[] args vs. 字符串 args[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13175193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com