Java关键字的笔记
我在查询一些资料的时候,发现资料中说的关键字都不一致,而且具体的单词也都大不相同,所以我特意查阅了jdk6-15(截止到目前(2020.01.04)最新)的官方文档,对此进行了整理
tips:因为Oracle是在Java6的时候收购的Sun公司,所以Oracle官网上我只找到了6-15的文档
官方文档:https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.9
链接中 jls/se8/html 中的se8就是对应的jdk版本(7-15)
se6要把jls/后面的删掉,翻到页面最下就有了(想看但不知道点哪个地方的话自己悟)
tips*2:如果你查看过这些文档,你会发现se6的网页和其他不同(所谓的干儿子亲儿子之间的不同?)
截止到目前(2020.01.04)最新的 se15 共有51个关键字
abstract continue for new switch
assert default if package synchronized
boolean do goto private this
break double implements protected throw
byte else import public throws
case enum instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp volatile
const float native super while
_ (underscore)
从se6开始 共有50个关键字
从se9开始 新增了 _
(下划线) 为新的保留关键字
从se14开始 官方文档添加了对 _
(下划线) 是保留关键字的说明
从se6到se15 const
和goto
一直是保留关键字
从se6开始 官方文档就一直说明 true
和false
看起来像关键字,但从技术上来讲,它们是Boolean
文字
从se6开始 官方文档就一直说明 null
看起来像关键字,但从技术上来讲,它是null
文字
从se10开始 官方文档直接说明 true
和false
不是关键字,是Boolean
文字
从se10开始 官方文档直接说明 null
不是关键字,是null
文字
从se10开始 官方文档直接说明 var
不是关键字,而是具有特殊含义的标识符,作为局部变量声明的类型
从se9开始 添加了十个受限制的关键字
open, module, requires, transitive, exports, opens, to, uses, provides, with
具体请看官方描述:
A further ten character sequences are restricted keywords: open
, module
, requires
, transitive
, exports
, opens
, to
, uses
, provides
, and with
. These character sequences are tokenized as keywords solely where they appear as terminals in the ModuleDeclaration and ModuleDirective productions. They are tokenized as identifiers everywhere else, for compatibility with programs written prior to Java SE 9. There is one exception: immediately to the right of the character sequence requires
in the ModuleDirective production, the character sequence transitive
is tokenized as a keyword unless it is followed by a separator, in which case it is tokenized as an identifier.