Jdk16全面学习之JLS章节说明
- 1 各章节概述
- 1.1 introduction
- 1.2 grammars
- 1.3 lexical structure
- 1.4 types,values and variables
- 1.5 conversions and contexts
- 1.6 names
- 1.7 packages and modules
- 1.8 classes
- 1.9 interfaces
- 1.10 arrays
- 1.11 exceptions
- 1.12 execution
- 1.13 binary compatibility
- 1.14 blocks statements and patterns
- 1.15 expressions
- 1.16 definite assignment
- 1.17 threads and locks
- 1.18 type inference
- 1.19 syntax
- 2 后续安排
这里给出16版本的jls的章节说明,也就是每章要介绍的主要内容,并梳理出一个后续要进行详细分析的章节汇总.
根据目前官网的jls文档,总共分为19章,每章又有具体的展开说明,下面具体解释每章内容.
1 各章节概述
1.1 introduction
第一章为简介,这一章介绍了java语言规范的文字组织顺序以及一些参考资料,就是介绍了其余各章的内容,还有就是根据源码中的特殊点进行了说明.
1.2 grammars
第二章为语法,主要说明了词语发,句语法,以及和语法相关的一些符号.
1.3 lexical structure
第三章为词法结构,主要说明了在编译源文件时是如何区分基于unicode的指令或者是操作数,以及使用utf-16进行编码,语句的结束以及基本类型的语法,是重点章节.
1.4 types,values and variables
第四章为类型,值和变量.这个和之前介绍的cpp的相关概念有关,具体包括了java的引用,父子类型,范型以及关于变量的一些关键字,比如final等,是重点章节.
1.5 conversions and contexts
第五章是类型转换和上下文环境,主要介绍了类型转换和上下为有关的规范,比如父子之间的转换以及逆变换等内容,是重点章节.
1.6 names
第六章是命名部分,在源码中有jvm的不同的命名空间,此处仅是java语言层面的命名,包括可见度和作用范围等,是重点章节.
1.7 packages and modules
第七章是包和模块,在jvm的源码中,模块是一个单独的系统,所以这一章包含的内容比较多,有包成员,模块成员及包和模块的兼容问题等,是重点章节.
1.8 classes
第八章是类,在jvm源码层面类系统和模块系统一样,都是独立的系统,在java语言层面包括类的定义声明,类的属性和方法等,是重点章节.
1.9 interfaces
第九章是接口,包括接口的定义和声明,接口的方法及特殊类型注解的说明,是重点章节.
1.10 arrays
第十章是数组,在jvm层面数据是cpp的数组,但是jvm进行了包装,特别指出了字符床不是字符的数组这一概念,是重点章节.
1.11 exceptions
第十一章是异常,在jvm源码中已经介绍过,jvm的源码都是在java语言层面事先写好的,通过挂在到内核线程上传递给使用者,真正和cpp的异常错误没什么关系,是重点章节.
1.12 execution
第十二章是执行,包括jvm的启动,加载类文件,相关的初始化等,最后介绍了退出jvm的方法,是重点章节.
1.13 binary compatibility
第十三章是二进制兼容,这一章主要是介绍如何使用class文件,也就是编译后的源文件来直接启动和运行,这么做也是加密和安全的需要.
1.14 blocks statements and patterns
第十四章是语句块,书写指令和模式,主要介绍了与指令相关的部分,以及包括assert等的使用,是重点章节.
1.15 expressions
第十五章是表达式,主要介绍了一般的java书写规范,内容很多,从类到实例,再到方法等都包括了,是重点章节.
1.16 definite assignment
第十六章是和值有关的部分,和cpp不同,java语言必须要有明确的左值,不能出现单独的右值及类似cpp的引用,简单来说就是java只允许出现左值,所以值也要有具体的类型,先关的概念之前已经详细解释过,这也是重点章节.
1.17 threads and locks
第十七章是线程和锁,在jvm源码分析时讲过,jvm使用的是系统的内核线程,但是做了包装,这一章也是重点章节.
1.18 type inference
第十八章是类型推断,这部分包括在上下文中有关的类型推断,可以看作是单独的java语言层面的特点.
1.19 syntax
第十九章是语法,概括了java语言层面的语法类型,包括词句类等.
2 后续安排
后续也会按照这些章节,每个重点章节为一单元进行解析和代码演示.内容会比较多.