Avatar ·

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 ?