最佳答案
以下代码生成输出“Hello World!”(不,真的,试试看)。
public static void main(String... args) {
// The comment below is not a typo.// \u000d System.out.println("Hello World!");}
原因是Java编译器将Unicode字符\u000d
解析为新行并转换为:
public static void main(String... args) {
// The comment below is not a typo.//System.out.println("Hello World!");}
从而导致注释被“执行”。
由于这可以用来“隐藏”恶意代码或任何邪恶的程序员可以想象的东西,为什么在评论中允许?
为什么Java规范允许这样做?