关于在运行时期间被视为新行字符的\u000d
,我引用了此Stack Overflow Post,因为这样的代码:
public static void main(String[] args)
{
// \u000d System.out.println("comment executed");
}
会输出"comment executed"
但是我从来没有真正理解为什么当我用更常规的形式 \u000d
替换\n
时,评论会不像以前那样工作。
答案 0 :(得分:2)
编译之前Java处理unicode序列。 \u000d
包含在该处理中。 \n
不是unicode序列,不会被处理。
请参阅此帖中的说明:Why is executing Java code in comments with certain Unicode characters allowed?
答案 1 :(得分:1)
java编译器不在注释中查找转义序列,只查找unicode。
我在java语言规范的评论部分找到了一些小字体。
在3.10.6 - Escape Sequences for Character and String Literals部分中:
提供了八进制转义以与C兼容,但是只能通过\ u00FF表示Unicode值\ u0000,因此通常首选Unicode转义。
这可以在3.10.6节的最底部找到。