八进制值 - 在JDK8中?

use*_*721 1 java literals octal java-8

此Q用于验证.

当文字值以0开头时,JDK 8似乎正在处理八进制:

  System.out.print(011);
Run Code Online (Sandbox Code Playgroud)

印刷9,和

  System.out.print(08);
Run Code Online (Sandbox Code Playgroud)

给出一个检查错误.

这不是在文档中 - 还是(?)

这是jdk8中的新功能吗?如果是这样的话 - 在八进制的情况下是否有一些细节,除了HEX和二进制的那些?

TIA

// =============================

编辑:

Q是关于JDK处理八进制 - 从什么时候开始.dosc仅显示HEX和二进制.

第二个代码行是为了显示它的八进制JDK,当值前面有一个0时.

Jon*_*eet 9

它永远存在于Java中......你想要的JLS位是3.10.1节:

八进制数字由ASCII数字0后跟一个或多个散布有下划线的ASCII数字0到7组成,并且可以表示正整数,零整数或负整数.

(这也是JLS的第一版.)

您不应期望Java教程在语言的每个方面都是完整的 - 这对目标受众来说是压倒性的.对于这样的方面,规范是要查看的文档.