【问题标题】:Why does executing comments with "\u000d" work but not "\n"为什么使用“\u000d”执行注释但不能使用“\n”
【发布时间】:2016-12-30 13:35:33
【问题描述】:

我有一个关于\u000d 的参考Stack Overflow Post 在运行时被视为换行符,因此代码如下:

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

将输出"comment executed",但我从来没有真正理解为什么当我用更传统的形式替换\u000d\n,评论不像以前的方式那样工作.

【问题讨论】:

标签: java unicode comments


【解决方案1】:

Java 在编译之前处理 unicode 序列。 \u000d 包含在该处理中。 \n 不是 unicode 序列,未处理。

请看这篇文章的解释:Why is executing Java code in comments with certain Unicode characters allowed?

【讨论】:

    【解决方案2】:

    java 编译器不在 cmets 中寻找转义序列,只在 unicode 中寻找。

    我在 java 语言规范的 cmets 部分发现了一些小字。

    3.10.6 - Escape Sequences for Character and String Literals部分:

    提供八进制转义是为了与 C 兼容,但只能表示 Unicode 值 \u0000 到 \u00FF,因此通常首选 Unicode 转义。

    这可以在第 3.10.6 节的最底部找到

    【讨论】:

      猜你喜欢
      • 2015-06-14
      • 2011-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      • 1970-01-01
      相关资源
      最近更新 更多