以下代码产生输出“ 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规范允许这样做?