Java关键字的笔记
#### 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. 感谢整理。
讲真,我觉得是不是关键字没那么重要,反正不是关键字也是特殊意义字符,不能轻易当变量名用,这就够了 来自天堂的问候 发表于 2021-1-5 13:58
第一次知道这么全,但是基本无用呀 因为基本都不特意记忆,分个类写下原因呗
哈哈,具体分类的话官网并没有给出,咱也不好随便分类啊,而且网上一些资料也是参差不齐,所以没有分 收藏了谢谢
收藏了谢谢 感谢楼主分享,学习回顾一下。 感谢分享! 感谢楼主的经验分享!谢谢! 讲真,用了三四年Java了,都不知道有这么多关键字 感谢分享,正在学习中。 好的阿萨达 感谢分享,学习了!