The Java Language Specification, Java SE 8 Edition
出版者的话
译者序
前言
第1章 概述 1
1.1 本书结构 1
1.2 样例程序 4
1.3 表示法 4
1.4 与预定义的类和接口的关系 4
1.5 反馈 5
1.6 参考文献 5
第2章 文法 6
2.1 上下文无关文法 6
2.2 词法 6
2.3 句法 6
2.4 文法表示法 6
第3章 词法结构 9
3.1 Unicode 9
3.2 词法翻译 10
3.3 Unicode转义字符 10
3.4 行终止符 11
3.5 输入元素和符号 12
3.6 空白字符 12
3.7 注释 13
3.8 标识符 14
3.9 关键字 15
3.10 字面常量 15
3.10.1 整数字面常量 15
3.10.2 浮点数字面常量 19
3.10.3 布尔字面常量 21
3.10.4 字符字面常量 21
3.10.5 字符串字面常量 22
3.10.6 字符和字符串字面常量的
转义序列 23
3.10.7 空字面常量 24
3.11 分隔符 24
3.12 操作符 24
第4章 类型、值和变量 25
4.1 类型和值的种类 25
4.2 简单类型和值 25
4.2.1 整数类型和值 26
4.2.2 整数操作 26
4.2.3 浮点数类型、格式和值 27
4.2.4 浮点数操作 29
4.2.5 boolean类型和布尔值 31
4.3 引用类型和值 32
4.3.1 对象 33
4.3.2 Object类 35
4.3.3 String类 35
4.3.4 当引用类型相同时 35
4.4 类型变量 36
4.5 参数化类型 37
4.5.1 参数化类型的类型引元 38
4.5.2 参数化类型的成员和构造器 40
4.6 类型擦除 40
4.7 可具化类型 41
4.8 原生类型 42
4.9 交集类型 45
4.10 子类型化 45
4.10.1 简单类型之间的子类型化 46
4.10.2 类与接口类型之间的子类型化 46
4.10.3 数组类型之间的子类型化 47
4.10.4 最低上边界 47
4.11 使用类型之处 49
4.12 变量 52
4.12.1 简单类型的变量 52
4.12.2 引用类型的变量 52
4.12.3 变量的种类 54
4.12.4 final变量 55
4.12.5 变量的初始值 56
4.12.6 类型、类和接口 57
第5章 类型转换与上下文 59
5.1 转换的种类 61
5.1.1 标识转换 61
5.1.2 拓宽简单类型转换 61
5.1.3 窄化简单类型转换 62
5.1.4 拓宽和窄化简单类型转换 64
5.1.5 拓宽引用类型转换 64
5.1.6 窄化引用类型转换 64
5.1.7 装箱转换 65
5.1.8 拆箱转换 66
5.1.9 非受检转换 67
5.1.10 捕获转换 67
5.1.11 字符串转换 69
5.1.12 被禁止的转换 69
5.1.13 值集转换 70
5.2 赋值上下文 70
5.3 方法调用上下文 74
5.4 字符串上下文 75
5.5 强制类型转换上下文 75
5.5.1 引用类型强制类型转换 77
5.5.2 受检强制类型转换和非受检强制类型转换 79
5.5.3 运行时的受检强制类型转换 80
5.6 数字上下文 81
5.6.1 一元数字提升 82
5.6.2 二元数字提升 83
第6章 名字 84
6.1 声明 84
6.2 名字与标识符 89
6.3 声明的作用域 91
6.4 遮蔽和遮掩 93
6.4.1 遮蔽 94
6.4.2 遮掩 96
6.5 确定名字的含义 97
6.5.1 根据上下文的名字的句法分类 98
6.5.2 对上下文歧义名字的重分类 100
6.5.3 包名的含义 101
6.5.4 PackageOrTypeNames的含义 102
6.5.5 类型名的含义 102
6.5.6 表达式名的含义 103
6.5.7 方法名的含义 105
6.6 访问控制 106
6.6.1 确定可访问性 107
6.6.2 受保护访问权限的细节 110
6.7 完全限定名和规范名 111
第7章 包 113
7.1 包成员 113
7.2 主机对包的支持 114
7.3 编译单元 115
7.4 包声明 116
7.4.1 具名包 116
7.4.2 不具名包 116
7.4.3 包的可观察性 117
7.5 导入声明 117
7.5.1 单类型导入声明 118
7.5.2 按需类型导入声明 119
7.5.3 单静态导入声明 120
7.5.4 按需静态导入声明 120
7.6 顶层类型声明 121
第8章 类 123
8.1 类声明 124
8.1.1 类修饰符 124
8.1.2 泛化类和类型参数 126
8.1.3 内部类和包围实例 128
8.1.4 超类和子类 130
8.1.5 超接口 132
8.1.6 类体和成员声明 134
8.2 类成员 135
8.3 域声明 138
8.3.1 域修饰符 141
8.3.2 域的初始化 145
8.3.3 在域初始化过程中的向前引用 146
8.4 方法声明 148
8.4.1 形参 149
8.4.2 方法签名 152
8.4.3 方法修饰符 152
8.4.4 泛化方法 156
8.4.5 方法的结果 157
8.4.6 方法抛出异常 157
8.4.7 方法体 158
8.4.8 继承、覆盖和隐藏 159
8.4.9 重载 166
8.5 成员类型声明 168
8.5.1 静态成员类型声明 169
8.6 实例初始化器 169
8.7 静态初始化器 169
8.8 构造器声明 170
8.8.1 形参 170
8.8.2 构造器签名 171
8.8.3 构造器修饰符 171
8.8.4 泛化构造器 172
8.8.5 构造器抛出异常 172
8.8.6 构造器的类型 172
8.8.7 构造器体 172
8.8.8 构造器重载 176
8.8.9 缺省构造器 176
8.8.10 阻止类的实例化 177
8.9 枚举类型 177
8.9.1 枚举常量 178
8.9.2 枚举体声明 178
8.9.3 枚举成员 180
第9章 接口 184
9.1 接口声明 184
9.1.1?接口修饰符 185
9.1.2 泛化接口和类型参数 185
9.1.3 超接口和子接口 186
9.1.4 接口体和成员声明 187
9.2 接口成员 187
9.3 域(常量)声明 187
9.3.1 接口中域的初始化 189
9.4 方法声明 189
9.4.1 继承和覆盖 190
9.4.2 重载 193
9.4.3 接口方法体 193
9.5 成员类型声明 193
9.6 注解类型 194
9.6.1 注解类型元素 195
9.6.2 注解类型元素的缺省值 197
9.6.3 可重复的注解类型 198
9.6.4 预定义的注解类型 200
9.7 注解 204
9.7.1 普通注解 205
9.7.2 标记注解 207
9.7.3 单元素注解 207
9.7.4 注解可以出现在何处 208
9.7.5 同种类型的多重注解 211
9.8 函数型接口 212
9.9 函数类型 214
......
展开