aut*_*ode 10 java eclipse jls unicode-escapes ecj
我在玩Java Unicode Escapes时无意中发现了以下有趣的奇怪之处。这是我写的代码:
static void main(String... args) {
/*
* \u0027 - single quote
*/
char e = \u0027\n\u0027;
char f = '\'';
System.out.println(e == f);
//output: true
}
Run Code Online (Sandbox Code Playgroud)
查看编译后的代码,Java 编译器将它们翻译成相同的字符文字。
char e = '\'';
char f = '\'';
Run Code Online (Sandbox Code Playgroud)
通过什么转换规则e
变成了 a'
而不是换行符\n
?
顺便说一句,我在 Windows 11 上使用 Oracle JDK 19。
编辑:这个问题似乎与 Java 编译器未能按照 Java 语言规范工作有关。
编辑:当 Oracle JDK 19 在 JLS 18 模式下运行时,似乎会发生此问题。(我不知道如何正确地说这个)
归档时间: |
|
查看次数: |
506 次 |
最近记录: |