Wenn ich diese Klasse starte, scheint die for-Schleife früh zu enden
%Vor%Ausgabe ist:
%Vor% Warum endet es dort? Interessanterweise würde, wenn ich System.out.println(i)
in der for-Schleife lösche, die Ausgabe End:-2147483647
sein. Offensichtlich hat der Wert in i
wrapped round
.
Die von mir verwendete Java-Version ist
%Vor%Es ist ein bekannter Bug in Java 6. Der JIT optimiert die Schleife falsch. Ich glaube, dass neuere Versionen von Java diesen Fehler nicht haben.
Java 6 Update 16 ist etwas über zwei Jahre alt. Ich schlage vor, Sie aktualisieren auf die neueste Version Java 6 Update 25, wenn Sie nicht auf Java 7 aktualisieren können.
BTW Java 6 wird Ende des kostenlosen Support in ein paar Monaten (Dez 2012)
seinSie können den JVM-Fehler umgehen, indem Sie Integer.MAX_VALUE-1 verwenden.