Q&A: Optimiert der Java-Compiler die Multiplikation konstanter Faktoren?

Wenn ich in mein Quellcode schreibe:

int i = 60 * 1000;

Wie kompiliert javac das? Wird die Rechenoperation schon zur Compile-Zeit ausgeführt, oder erst zur Laufzeit?

Antwort: Diese "compile-time constant expression" optimiert der Compiler. Im Bytecode steht dann nur 60000. Siehe dazu auch http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.28.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert