Interesting. In the Java Language Specification, both seems to be valid grammar. However, the specification only give details for the simpler identifier -- it doesn't defines what to do if the VariableDeclaratorID has array brackets specified (ie. more than a simpler identifier). Or at least, I could not find where the behavior is defined.