On Java 中文版 基础卷

On Java 中文版 基础卷

书名: On Java 中文版 基础卷作者: [美]布鲁斯·埃克尔译者: 陈德伟出版社: 人民邮电出版社出版日期: 2022-03价格: 64.9页数: 840isbn: 9787115585011评分: 8.8 (豆瓣)评分: 89.2 (微信)

正版购买


内容

本书是布鲁斯•埃克尔时隔 15 年,继Thinking in Java之后又一力作,基于 Java 的 3 个 长期支持版(Java 8、11、17),讲解 Java 核心语法,并对 Java 的核心变化进行详述。全书内容通俗易懂,配合示例讲解逐步深入,并结合实际开发需要,从语言底层设计出发,有效帮读者规避一些常见的开发陷阱。 主体部分共 22 章,内容包含对象、操作符、控制流、初始化和清理、复用、多态、接口、 内部类、集合、函数式编程、流、异常、代码校验、文件、字符串、泛型等。 本书适合各个层次的 Java 开发者阅读,同时也可作为面向对象程序设计语言以及 Java 语 言的参考教材。

作者

Bruce Eckel ,C++标准委员会的创始成员之一,知名技术顾问 ,专注于编程语言和软件系统设计方面的研究,常活跃于世界各大顶级技术研讨会。他自1986年以来,累计出版Thinking in C++、Thinking in Java、On Java 8等十余部经典计算机著作,曾多次荣获Jolt 最佳图书奖(“被誉为软件业界的奥斯卡”),其代表作 Thinking in Java被译为中、日、俄、意、波兰、韩等十几种语言,在世界范围内产生广泛影响。

目录

第1章什么是对象

1.1 抽象的历程

1.3 对象可以提供服务

1.5 复用实现

1.7 多态

1.9 集合

1.11 异常处理

第2章 安装Java和本书示例

2.2 shell

2.2.2 目录(文件夹)

2.3 安装Java

2.5 安装和运行本书示例

3.1 通过引用操作对象

3.2.1 数据保存在哪里

3.2.3 Java 中的数组

3.4 无须销毁对象

3.4.2 对象的作用域

3.6 方法、参数以及返回值

3.7.1 名称可见性

3.7.3 static 关键字

3.9 编程风格

第4章 操作符

4.2 优先级

4.4 算术操作符

4.6 关系操作符

4.8 字面量

4.8.2 科学记数法(又称“指数记数法”)

4.10 移位操作符

4.12 字符串操作符+ 和+=

4.14 类型转换操作符

4.14.2 提升

4.16 操作符小结

第5章 控制流

5.2 if-else

5.3.1 do-while

5.3.3 逗号操作符

5.5 return

5.7 臭名昭著的goto

5.9 字符串作为选择器

第6章 初始化和清理

6.2 方法重载

6.2.2 使用基本类型的重载

6.3 无参构造器

6.4.1 在构造器中调用构造器

6.5 清理:终结和垃圾收集

6.5.2 你必须执行清理

6.5.4 垃圾收集器的工作原理

6.7 构造器初始化

6.7.2 静态数据的初始化

6.7.4 非静态实例初始化

6.8.1 动态数组创建

6.9 枚举类型

6.11 总结

7.1 package:库单元

7.1.2 创建独一无二的包名

7.1.4 用import 来改变行为

7.2 Java 访问权限修饰符

7.2.2 public:接口访问权限

7.2.4 protected:继承访问权限

7.3 接口和实现

7.5 新特性:模块

第8章 复用

8.2 继承语法

8.4 组合与继承相结合

8.4.2 名称隐藏

8.6 protected 关键字

8.8 final 关键字

8.8.2 final 方法

8.8.4 关于final 的忠告

8.10 总结

9.1 再论向上转型

9.2.1 方法调用绑定

9.2.3 可扩展性

9.2.5 陷阱:字段与静态方法

9.3.1 构造器的调用顺序

9.3.3 构造器内部的多态方法行为

9.5 用继承进行设计

10.1 抽象类和抽象方法

10.2.1 默认方法

10.2.3 接口中的静态方法

10.3 抽象类与接口

10.5 组合多个接口

10.7 适配接口

10.9 嵌套接口

10.11 新特性:接口的private方法

10.13 总结

11.1 创建内部类

11.3 使用.this 和.new

11.5 在方法和作用域中的内部类

11.7 嵌套类

11.7.2 从多层嵌套的内部类中 访问外部成员

11.8.1 闭包与回调

11.9 继承内部类

11.11 局部内部类

11.13 总结

12.1 泛型和类型安全的集合

12.3 添加一组元素

12.5 List

12.7 LinkedList

12.9 Set

12.11 新特性:记录(record)类型

12.13 Collection 和Iterator 的对比

12.15 总结

13.1 旧方式与新方式

13.3 方法引用

13.3.2 未绑定方法引用

13.4 函数式接口

13.4.2 解决缺乏基本类型函数式接口的问题

13.6 闭包

13.8 柯里化和部分求值

13.10 总结

14.1 Java 8 对流的支持

14.2.1 随机数流

14.2.3 generate()

14.2.5 流生成器

14.2.7 正则表达式

14.3.1 跟踪与调试

14.3.3 移除元素

14.3.5 在应用map() 期间组合流

14.4.1 便捷函数

14.4.3 Optional 对象上的操作

14.5 终结操作

14.5.2 在每个流元素上应用某个 终结操作

14.5.4 组合所有的流元素

14.5.6 选择一个元素

14.6 小结

15.1 概念

15.3 捕捉异常

15.3.2 异常处理程序

15.5 异常说明

15.6.1 多重捕捉

15.6.3 重新抛出异常

15.7 标准Java 异常

15.9 使用finally 执行清理

15.9.2 在return 期间使用finally

15.10 异常的约束

15.12 try-with-resources 语句

15.12.2 新特性:try-withresources中的实际上的最终变量

15.14 其他可选方式

15.14.2 观点

15.14.4 将“检查型异常”转换为“非检查型异常”

15.16 小结

第16章 代码校验

16.1.1 单元测试

16.2 前置条件

16.2.2 DbC + 单元测试

16.3 测试驱动开发

16.5 调试

16.5.2 图形调试器

16.6.1 微基准测试

16.7 分析与优化

16.9 静态错误分析

16.11 结对编程

16.13 持续集成

第17章 文件

17.1.1 选择Path 的片段

17.1.3 添加或删除路径片段

17.3 文件系统

17.5 查找文件

17.7 小结

18.1 不可变的字符串

18.3 无意识的递归

18.5 格式化输出

18.5.2 System.out.format()

18.5.4 格式说明符

18.5.6 String.format()

18.7 正则表达式

18.7.2 创建正则表达式

18.7.4 Pattern 和Matcher

18.7.6 替换操作

18.7.8 正则表达式和JavaI/O

18.8.1 Scanner 分隔符

18.9 StringTokenizer

第19章 反射

19.2 Class 对象

19.2.2 泛型类的引用

19.3 转型前检查

19.3.2 动态的instanceof

19.5 Instanceof 与Class 的等价性

19.7 动态代理

19.8.1 标签接口

19.9 接口和类型信息

第20章 泛型

20.2 简单泛型

20.2.2 栈类

20.3 泛型接口

20.4.1 可变参数和泛型方法

20.4.3 简化元组的使用

20.5 构建复杂模型

20.6.1 C++ 的实现方法

20.6.3 类型擦除存在的问题

20.7 对类型擦除的补偿

20.7.2 泛型数组

20.9 通配符

20.9.2 逆变性

20.9.4 捕获转换

20.10.1 基本类型不可作为 类型参数

20.10.3 类型转换和警告

20.10.5 基类会劫持接口

20.11.1 奇异递归泛型

20.11.3 参数协变性

20.13 异常

20.14.1 C++ 中的混型

20.14.3 使用装饰器模式

20.15 潜在类型机制 20.15.1 Python 中的潜在类型 机制

20.15.3 Go 中的潜在类型 机制

20.16 对于缺少(直接的)潜在类型 机制的补偿

20.16.2 将方法应用于序列

20.18 总结:转型真的这么糟糕吗?

21.1 数组为何特殊

21.3 返回数组

21.5 数组和泛型

21.7 Arrays.setAll()

21.9 随机数生成器

21.11 修改已有的数组元素

21.12.1 策略

21.13 数组实用工具

21.15 数组比较

21.17 数组排序

21.17.2 并行排序

21.19 用parallelPrefix() 进行累积 计算

附录A 补充内容

上一本
下一本