一个unicode换行符(

A unicode newline character(u000d) in Java

让我们来看看下面的Java代码片段。

1
2
3
4
5
public class Main {
    public static void main(String[] args) {
        // new Character(' \u000d System.out.println("Hello");
    }
}

在上面的代码中,虽然main()方法中的唯一一行被注释掉了,但是它在控制台上显示输出Hello,尽管看起来这个注释行包含一些语法错误。如果这一行未注释,它将根本不工作,从而导致编译时错误。

为什么在这里输出"你好"?


Java解析源代码中的字符转义代码,而不只是字符串。这允许您使用没有Unicode编码的Unicode标识符。

因此,注释中的\u000d被解析为新行,结束注释并开始实例初始值设定项。