0 到 255 之间的字符值可以用八进制文字 from "\000"
to表示"\377"
。
那么不"\400"
应该是编译时错误吗?然而 Eclipse 并没有抱怨……这是怎么回事?
0 到 255 之间的字符值可以用八进制文字 from "\000"
to表示"\377"
。
那么不"\400"
应该是编译时错误吗?然而 Eclipse 并没有抱怨……这是怎么回事?
它将其解释为 "\40" + "0"
Java 语言规范在此处对此进行了描述。
OctalEscape:
\ OctalDigit
\ OctalDigit OctalDigit
\ ZeroToThree OctalDigit OctalDigit
OctalDigit: one of
0 1 2 3 4 5 6 7
ZeroToThree: one of
0 1 2 3
它属于
\ OctalDigit OctalDigit
...后跟“0”。它不属于
\ ZeroToThree OctalDigit OctalDigit
...所以它不是模棱两可或超出范围。有关详细信息,请参阅Java 语言规范的第 3.10.6 节。
请注意,由于这个原因,您不能将其用作字符文字:
char x = '\377'; // Fine
char y = '\400'; // Error: unclosed character literal