Java中的unicode换行符(\ u000d)
我们来看下面的Java代码片段。
public class Main { public static void main(String[] args) { // new Character(' \u000d System.out.println("Hello"); } }
在上面的代码中,虽然main()
方法中的唯一一行被注释掉了,但它在控制台上显示输出Hello
,即使看起来这条注释行包含一些语法错误。 如果这一行没有注释,它将不会工作,导致编译时错误。
为什么在这里输出“Hello”?
Java在源代码中parsing字符转义码,而不仅仅是string。
这使您可以在不使用Unicode编码的情况下使用Unicode标识符。
因此,注释中的\u000d
被parsing为一个换行符,结束注释并开始一个实例初始值设定项。
实际上它是Java Puzzlers之一。
谜题2:行式打印机
我真的推荐阅读整本书。