В настоящее время я преподаю студентам в качестве программ обучения преподавателей. Я сказал им, что они могут найти большинство соглашений в соглашениях Oracle Code.
В моем последнем уроке студент спросил, есть ли:
public static void main(String args[])
или
public static void main(String[] args)
записывается по соглашению или если есть разница. Я никогда раньше не видел первую версию, поэтому я очень уверен, что вторая - это конвенция. Но у меня нет источника для этого.
Можете ли вы дать мне источник (желательно из оракула, например, страницы, с которой я связан выше), которая ясно показывает, какой из них является конвенцией?
Эквивалентность обоих выражений
Я знаю, что оба выражения эквивалентны:
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[][];
Но это не помогает для соглашения-quesiton.
Таким образом, они идентичны (не спецификации, но вот источник). Они производят один и тот же байт-код в небольшом примере, поэтому я очень уверен, что они также идентичны в практике.