Pourquoi Java exécute-t-il du code écrit dans des commentaires à l'aide de caractères Unicode ?
Bonjour à tous ! Je suis novice en Java et j'ai rencontré un comportement étrange que je ne peux pas expliquer. J'essayais d'écrire un simple programme "Hello, World!", mais j'ai accidentellement découvert que le code à l'intérieur des commentaires peut être exécuté si l'on utilise des séquences d'échappement Unicode.
Voici un exemple qui m'a déconcerté :
```java
public class Main {
public static void main(String[] args) {
// \u000d System.out.println("Ceci s'exécute !");
System.out.println("Hello, World!");
}
}
```
Quand j'ai exécuté ce code, deux lignes sont apparues dans la console : "Ceci s'exécute !" et "Hello, World!". Mais la première ligne est un commentaire ! Comment est-ce possible ? Je pensais que les commentaires étaient ignorés par le compilateur.
J'ai lu que cela est lié à la façon dont Java traite Unicode, mais je ne comprends pas les détails. Pourquoi des caractères comme \u000d (retour chariot) peuvent-ils "casser" les commentaires ? Existe-t-il d'autres caractères Unicode similaires pouvant provoquer un comportement inattendu ? Et comment protéger mon code contre cela ?