0 0 0

Java语言规范-基于Java SE 8.pdf

不减狂骄
5天前 170
我用夸克网盘分享了「Java语言规范-基于Java SE 8.pdf」,点击链接即可保存。打开「夸克APP」在线查看,支持多种文档格式转换。
Java语言规范 作者: [美] 詹姆斯·高斯林/[美] 比尔·乔伊/[美] 盖·斯蒂尔 出版社: 机械工业出版社 副标题: 基于Java SE 8 原作名: The Java Language Specification, Java SE 8 Edition 译者: 陈昊鹏 出版年: 2016-1-1 页数: 513 定价: CNY 129.00 装帧: 平装 丛书: 计算机科学丛书 ISBN: 9787111523994

内容简介

Oracle官方发布,Java编程语言及规范创建人撰写,国内资深Java技术专家翻译,Amazon畅销书! 基于最新Java SE 8,完整且准确地阐述Java编程语言及其规范,是深度了解Java语言及其技术细节的权威参考书。 本书由Java技术的发明者编写,是Java编程语言的权威性技术指南。如果你想知道Java语言构造的精确含义以及各种技术细节,本书是最好的资源。 本书全面、准确而详细地讨论了Java编程语言,是Java语言最新版本的规范。全书从Java最基础的文法、类型、变量到高级特性lambda表达式、线程与锁等进行了详尽阐述。该规范针对每一项语言特性都给出了代表性的示例程序,以帮助读者更容易地理解和掌握这些特性。通过阅读本规范,可以全面系统地了解Java语言的各项特性,为充分利用这些特性来编写出更加高效简洁的Java程序提供帮助。读者还可以从Oracle的Java官方网站上看到本书的最新进展和修订,以了解Java语言的最新发展动向。 本书可作为高等院校Java语言程序设计等相关专业的学习手册,也可作为Java语言爱好者的参考资料。 本书主要内容 全面反映Java语言的整个发展历程。 详细讲述Java SE 8的语法、语义和结构。 彻底覆盖Java SE 8的主要改进,包括lambda表达式、方法引用、缺省方法等。 充分解决如何提升JAVA语言中最流行的特性之一——注解的效用。 包含宝贵的见解,区分JAVA的正式规则和真实的编译器行为。 对每一个使用Java语言进行企业级开发的程序员都是不可或缺的资源。

作者简介

詹姆斯·高斯林 (James Gosling) 软件专家,Java编程语言的共同创始人之一,曾先后为Sun公司、Oracle公司和Google公司工作,是计算机行业最著名的程序员之一。他于1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位。2013年,Gosling博士被选为ACM Fellow;2015年,获得IEEE 冯诺伊曼奖。

网友热评

LiXiaNG: ZWWJ 2016\TP312JA\gsl ,太乏味了,也就翻了翻。 轩辕拾銉: 一周目未完成, 看过 线程与锁, 感觉对理解语言挺有帮助的; 本来想给 4 分, 翻译扣一分;

图书目录

出版者的话 译者序 前言 第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 Unicode9 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 第10章 数组218 10.1 数组类型218 10.2 数组变量219 10.3 数组创建220 10.4 数组访问220 10.5 数组存储异常220 10.6 数组初始化器221 10.7 数组成员222 10.8 数组的Class对象223 10.9 字符数组不是String224 第11章 异常225 11.1 异常的种类和成因225 11.1.1 异常的种类225 11.1.2 异常的成因226 11.1.3 异步异常226 11.2 异常的编译时检查227 11.2.1 表达式异常分析228 11.2.2 语句异常分析228 11.2.3 异常检查229 11.3 异常的运行时处理230 第12章 执行233 12.1 Java虚拟机启动233 12.1.1 加载Test类233 12.1.2 链接Test:校验、准备、(可选的)解析233 12.1.3 初始化Test:执行初始化器234 12.1.4 调用Test.main234 12.2 加载类和接口235 12.2.1 加载过程235 12.3 链接类和接口236 12.3.1 二进制表示的校验236 12.3.2 类或接口类型的准备236 12.3.3 符号引用的解析237 12.4 初始化类和接口237 12.4.1 当初始化发生时238 12.4.2 详细的初始化过程239 12.5 创建新的类实例241 12.6 类实例的终结243 12.6.1 实现终结244 12.6.2 与内存模型的交互245 12.7 卸载类和接口246 12.8 程序退出247 第13章 二进制兼容性248 13.1 二进制形式249 13.2 二进制兼容性到底是什么252 13.3 包的演化252 13.4 类的演化253 13.4.1 abstract类253 13.4.2 final类253 13.4.3 public类253 13.4.4 超类和超接口253 13.4.5 类的类型参数254 13.4.6 类体和成员声明255 13.4.7 对成员和构造器的访问权限256 13.4.8 域声明257 13.4.9 final域和static 常量变量258 13.4.10 static域260 13.4.11 transient域260 13.4.12 方法和构造器声明260 13.4.13 方法和构造器的类型参数261 13.4.14 方法和构造器的形式参数261 13.4.15 方法返回类型262 13.4.16 abstract方法262 13.4.17 final方法262 13.4.18 native方法263 13.4.19 static方法263 13.4.20 synchronized方法263 13.4.21 方法和构造器的抛出物263 13.4.22 方法和构造器体263 13.4.23 方法和构造器的重载264 13.4.24 方法覆盖264 13.4.25 静态初始化器264 13.4.26 枚举的演化265 13.5 接口的演化265 13.5.1 public接口265 13.5.2 超接口265 13.5.3 接口成员265 13.5.4 接口的类型参数266 13.5.5 域声明266 13.5.6 接口方法声明266 13.5.7 注解类型的演化267 第14章 块和语句268 14.1 语句的正常结束和猝然结束268 14.2 块269 14.3 局部类声明269 14.4 局部变量声明语句270 14.4.1 局部变量声明符和类型271 14.4.2 局部变量声明的执行271 14.5 语句271 14.6 空语句272 14.7 标号语句273 14.8 表达式语句274 14.9 if语句274 14.9.1 if-then语句274 14.9.2 if-then-else语句275 14.10 assert语句275 14.11 switch语句277 14.12 while语句280 14.12.1 while语句的猝然结束280 14.13 do语句281 14.13.1 do语句的猝然结束281 14.14 for语句282 14.14.1 基本for语句282 14.14.2 增强for语句284 14.15 break语句285 14.16 continue语句287 14.17 return语句288 14.18 throw语句289 14.19 synchronized语句290 14.20 try语句291 14.20.1 try-catch的执行293 14.20.2 try-finally和try-catch-finally的执行294 14.20.3 带资源的try296 14.21 不可达语句299 第15章 表达式303 15.1 计算、表示和结果303 15.2 表达式的形式303 15.3 表达式的类型304 15.4 FP-严格的表达式304 15.5 表达式和运行时检查305 15.6 计算的正常和猝然结束306 15.7 计算顺序307 15.7.1 首先计算左操作数307 15.7.2 在操作之前计算操作数308 15.7.3 计算遵循括号和优先级309 15.7.4 引元列表是自左向右计算的310 15.7.5 其他表达式的计算顺序310 15.8 基本表达式311 15.8.1 词法上的字面常量312 15.8.2 类字面常量312 15.8.3 this313 15.8.4 限定的this313 15.8.5 带括号的表达式314 15.9 类实例创建表达式314 15.9.1 确定要实例化的类315 15.9.2 确定包围实例316 15.9.3 选择构造器及其引元317 15.9.4 类实例创建表达式的运行时计算319 15.9.5 匿名类声明320 15.10 数组创建和访问表达式321 15.10.1 数组创建表达式321 15.10.2 数组创建表达式的运行时执行322 15.10.3 数组访问表达式324 15.10.4 数组访问表达式的运行时计算324 15.11 域访问表达式326 15.11.1 使用基本表达式访问域326 15.11.2 使用super访问超类成员328 15.12 方法调用表达式329 15.12.1 编译时的步骤1:确定要搜索的类或接口330 15.12.2 编译时的步骤2:确定方法签名332 15.12.3 编译时的步骤3:选中的方法是否合适342 15.12.4 方法调用的运行时计算343 15.13 方法引用表达式350 15.13.1 方法引用的编译时声明352 15.13.2 方法引用的类型355 15.13.3 方法引用的运行时计算356 15.14 后缀表达式359 15.14.1 表达式名字359 15.14.2 后缀递增操作符++359 15.14.3 后缀递减操作符--359 15.15 一元操作符360 15.15.1 前缀递增操作符++361 15.15.2 前缀递减操作符--361 15.15.3 一元加号操作符+362 15.15.4 一元减号操作符-362 15.15.5 按位取反操作符~362 15.15.6 逻辑取反操作符!362 15.16 强制类型转换表达式363 15.17 乘除操作符364 15.17.1 乘法操作符*364 15.17.2 除法操作符/365 15.17.3 取余操作符%366 15.18 加减操作符367 15.18.1 字符串连接操作符+368 15.18.2 用于数字类型的加减操作符 (+和-)369 15.19 移位操作符371 15.20 关系操作符371 15.20.1 数字比较操作符<、<=、>和>=372 15.20.2 类型比较操作符instanceof372 15.21 判等操作符373 15.21.1 数字判等操作符==和!=373 15.21.2 布尔判等操作符==和!=374 15.21.3 引用判等操作符==和!=374 15.22 位操作符与逻辑操作符375 15.22.1 整数位操作符&、^和|375 15.22.2 布尔逻辑操作符&、^和|376 15.23 条件与操作符&&376 15.24 条件或操作符||376 15.25 条件操作符?:377 15.25.1 布尔条件表达式381 15.25.2 数字型条件表达式381 15.25.3 引用条件表达式382 15.26 赋值操作符383 15.26.1 简单赋值操作符=383 15.26.2 复合赋值操作符387 15.27 lambda表达式391 15.27.1 lambda参数393 15.27.2 lambda体394 15.27.3 lambda表达式的类型397 15.27.4 lambda表达式的运行时计算398 15.28 常量表达式399 第16章 明确赋值400 16.1 明确赋值和表达式404 16.1.1 布尔常量表达式404 16.1.2 条件与操作符&&404 16.1.3 条件或操作符||404 16.1.4 逻辑取反操作符!405 16.1.5 条件操作符?:405 16.1.6 其他boolean类型的表达式405 16.1.7 赋值表达式406 16.1.8 操作符++和--406 16.1.9 其他表达式406 16.2 明确赋值与语句407 16.2.1 空语句407 16.2.2 块407 16.2.3 局部类声明语句408 16.2.4 局部变量声明语句408 16.2.5 标号语句409 16.2.6 表达式语句409 16.2.7 if语句409 16.2.8 assert语句409 16.2.9 switch语句410 16.2.10 while语句410 16.2.11 do语句410 16.2.12 for语句411 16.2.13 break、continue、return和throw语句412 16.2.14 synchronized语句412 16.2.15 try语句412 16.3 明确赋值与参数413 16.4 明确赋值与数组初始化器413 16.5 明确赋值与枚举常量413 16.6 明确赋值与匿名类414 16.7 明确赋值与成员类型414 16.8 明确赋值与静态初始化器414 16.9 明确赋值、构造器和实例初始化器415 第17章 线程与锁416 17.1 同步416 17.2 等待集和通知417 17.2.1 等待417 17.2.2 通知418 17.2.3 中断418 17.2.4 等待、通知和中断的交互418 17.3 睡眠和让步419 17.4 内存模型419 17.4.1 共享变量421 17.4.2 动作421 17.4.3 程序和程序顺序422 17.4.4 同步顺序422 17.4.5 “之前发生”顺序423 17.4.6 执行425 17.4.7 良构执行425 17.4.8 执行和因果关系要求426 17.4.9 可观察的行为和不终止的执行428 17.5 final域的语义429 17.5.1 final域的语义430 17.5.2 在构造阶段读final域430 17.5.3 对final域的后续修改431 17.5.4 写受保护的域432 17.6 字撕裂432 17.7 double和long的非原子化处理433 第18章 类型推断434 18.1 概念与表示法435 18.1.1 推断变量435 18.1.2 约束公式435 18.1.3 边界435 18.2 归纳436 18.2.1 表达式可兼容性约束437 18.2.2 类型可兼容性约束440 18.2.3 子类型化约束440 18.2.4 类型相等性约束442 18.2.5 受检异常约束442 18.3 合并443 18.3.1 互补的边界对444 18.3.2 涉及捕获转换的边界444 18.4 解析445 18.5 推断的使用446 18.5.1 调用可应用性的推断447 18.5.2 调用类型的推断448 18.5.3 函数型接口的参数化版本推断451 18.5.4 更具体方法的推断452 第19章 语法454 索引470

Java语言规范-基于Java

版权说明

1、本站不保存、不存储任何实质资源,以上二维码指向为网盘资源链接,其内容归对应版权方所有
2、如有侵犯版权的情况,请点击下面举报/反馈按钮反馈或发送邮件[email protected]投诉说明情况
3、我们核实后将第一时间删除相关页面内容,谢谢理解和配合

这些人下载过 (12)
  • Rebirth重生
  • 想找個人陪
  • Paranoid(偏执
  • 岁月静好
  • 心伴我久
  • 侵日逆天
  • 你身边太挤我宁愿退离你
  • 你真让我很蛋疼
  • 风吻过你
  • 別尝試接近我
  • 待我强大定给媳妇天下
  • 第五人创意名字
最新回复 (0)

    暂无评论

请先登录后发表评论!

返回
请先登录后发表评论!