Is there a functional difference between these methods?
public static void main(String[] args) { }
public static void main(String args[]) { }
The notation
String args[]
is just a convenience for C programmers, but it's identical to this notation:
String[] args
Here's what the Sun Java Tutorial says:
You can also place the square brackets after the array's name:
float anArrayOfFloats[]; // this form is discouragedHowever, convention discourages this form; the brackets identify the array type and should appear with the type designation.
Reference: Java Tutorial > Arrays
BTW, a lesser known fact is that main methods also support varargs, so this is also okay:
public static void main(String ... args) { }
The reason is that a varargs method is internally identical to a method that supports a single array parameter of the specified type.E.g. this won't compile:
public static void main(final String... parameters){}
public static void main(final String[] parameters){}
// compiler error: Duplicate method main(String[])
Reference: Java Tutorial > Arbitrary Number of Arguments