为什么用" \ u000d"执行注释?工作但不是" \ n"

时间:2016-12-30 13:35:34

标签: java unicode comments

关于在运行时期间被视为新行字符的\u000d,我引用了此Stack Overflow Post,因为这样的代码:

public static void main(String[] args)
{         
     // \u000d System.out.println("comment executed");
}

会输出"comment executed"但是我从来没有真正理解为什么当我用更常规的形式 \u000d 替换\n时,评论会不像以前那样工作。

2 个答案:

答案 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节的最底部找到。