Avatar ·

Warum führt Java Code aus, der in Kommentaren über Unicode versteckt ist?

Hallo zusammen! Ich habe vor kurzem angefangen, Java zu lernen, und bin auf ein seltsames Verhalten gestoßen. Ich schreibe einfachen Code: ```java public class Test { public static void main(String[] args) { // \u000d System.out.println("Hello from comment!"); System.out.println("Hello world"); } } ``` Ich erwartete, dass dieser Code nur "Hello world" ausgibt, weil die zweite Zeile ein Kommentar ist. Aber beim Ausführen erhalte ich: ``` Hello from comment! Hello world ``` Wie kann das sein? Ich dachte, Kommentare werden vom Compiler vollständig ignoriert. Warum wird Code innerhalb eines Kommentars ausgeführt? Ist das ein Compiler-Fehler oder so beabsichtigt? Ich habe gegoogelt, aber keine verständliche Erklärung für Anfänger gefunden. Bitte erklärt mir, wie diese Magie mit Unicode funktioniert. Und kann man sich irgendwie vor solchen "Überraschungen" im Code schützen? Vielen Dank im Voraus! <<>>

Kurze Antwort

Java verarbeitet Unicode-Escape-Sequenzen (z.B. \u000d) in der frühesten Phase der Kompilierung – vor