I was updating a legacy code base in Java and I found a line like this:
Object arg[] = { new Integer(20), new Integer(22) };
That line catc
Both are legal and both work. But placing [] before the array's name is recommended.
From Javadocs:
You can also place the square brackets after the array's name:
float anArrayOfFloats[]; // this form is discouraged
However, convention discourages this form; the brackets identify the array type and should appear with the type designation.
Another good reason to write Integer[] ints
instead of Integer ints[]
is because of inheritance relations: Integer[]
is subtype of Number[]
is subtype of Object[]
.
In other words, you can put Integers
in an Object
array, so you can think of the []
as part of the object's type definition -- which is why it makes sense to have it close to the type instead of the object name.
There is no difference. Both are legal.
You can read in Java Language Specification http://java.sun.com/docs/books/jls/second_edition/html/arrays.doc.html
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, as in this example:
byte[] rowvector, colvector, matrix[];
No, they both work. But watch out:
float anArrayOfFloats[], aSecondVariable;
will declare one array of floats and one float, while:
float[] anArrayOfFloats, aSecondVariable;
will declare two arrays of floats.
Short answer: No.