Avatar ·

Por que o Java executa código escrito em comentários usando caracteres Unicode?

Olá a todos! Sou novo em Java e me deparei com um comportamento estranho que não consigo explicar. Tentei escrever um programa simples "Hello, World!", mas acidentalmente descobri que o código dentro de comentários pode ser executado se usar sequências de escape Unicode. Aqui está um exemplo que me confundiu: ```java public class Main { public static void main(String[] args) { // \u000d System.out.println("Isso está sendo executado!"); System.out.println("Hello, World!"); } } ``` Quando executei este código, duas linhas apareceram no console: "Isso está sendo executado!" e "Hello, World!". Mas a primeira linha é um comentário! Como isso é possível? Eu pensei que comentários eram ignorados pelo compilador. Li que isso está relacionado a como o Java processa Unicode, mas não entendo os detalhes. Por que caracteres como \u000d (retorno de carro) podem "quebrar" comentários? Existem outros caracteres Unicode semelhantes que podem causar comportamento inesperado? E como posso proteger meu código contra isso?