So wie Du es geschrieben hast sicher nicht, da dadurch arr.length mehrfach aufgerufen wird (im anderen Fall nur 1x). Potentiell kann sich arr.length während des Schleifendurchlaufs aber ändern - was also zu unterschiedlichem Verhalten führen würde.
Nimm nur mal an, dass es sich um eine (aufwendige) Funktion handelt - dann wird diese bei jedem Durchlauf neu ausgeführt. Manchmal wichtig (wenn der Wert abhängig von der Schleifenvariable ist), ansonsten nur langsam ;)
[code]
int b = 7;
for ( int a = 1; a <= b; a++ ) { }
[/code]