Voyons l'extrait de code suivant en Java.
public class Main {
public static void main(String[] args) {
// new Character(' \u000d System.out.println("Hello");
}
}
Dans le code ci-dessus, bien que la seule ligne de la méthode main()
soit mise en commentaire, elle affiche la sortie Hello
sur la console, même s'il semble que cette ligne commentée contient des erreurs de syntaxe . Si cette ligne n'est pas commentée, elle ne fonctionnera pas du tout, provoquant une erreur de compilation.
Pourquoi affiche-t-il "Bonjour" ici?
Java analyse les codes d'échappement de caractères dans le code source, pas seulement les chaînes.
Cela vous permet d'utiliser des identifiants Unicode sans encodage Unicode.
Par conséquent, la \u000d
dans le commentaire est analysé comme une nouvelle ligne, mettant fin au commentaire et commençant un initialiseur d'instance.