×
暂无评论
图文详情
  • ISBN:9787115626097
  • 装帧:平装-胶订
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:292
  • 出版时间:2024-04-01
  • 条形码:9787115626097 ; 978-7-115-62609-7

本书特色

1.经典Java作品《Java核心技术》的速学版本,降低学习门槛,帮助读者更容易学习Java,更快地把相关知识应用到实际工作中;

2.Java入门优选书籍,涵盖Java 8-Java 17的新特性,作者Java大神霍斯特曼;

3.快速切入主题,展示解决编程问题所需的核心知识,既扎实覆盖Java编程的基础知识,更独具匠心地带领读者探索和实践Java的诸多新特性;

4.提供丰富的示例,还给出了大量注释、提示和警告,这些都是作者实际经验的总结,对编程实践大有裨益。

内容简介

本书是经典Java开发基础书《Java核心技术》的速学版本。本书首先介绍了Java语言的基础知识,包含接口、Lambda表达式、继承、反射、异常处理、断言、日志、泛型编程、容器等关键概念;其次介绍了流、输人和输出处理、并发、注解、日期和时间API、国际化、编译和脚本、Java平台模块系统等高级特性。本书不仅可以让读者深入了解Java编程的基础知识和核心概念,还可以帮助读者掌握Java应用程序开发所需的基本技能。本书涵盖了Java17中更新的内容,提供了许多实用的示例代码,还给出了基于作者实际经验的提示、注意和警告。本书可供希望深入掌握Java应用的初学者使用,也适合打算将Java应用到实际项目中的编程人员使用。

目录

第 1 章 基本编程结构 1

1.1 我们的第 一个程序 1

1.1.1 剖析“Hello, World”程序 1

1.1.2 编译和运行 Java 程序 2

1.1.3 方法调用 4

1.1.4 JShell 4

1.2 基本类型 6

1.2.1 有符号整数类型 7

1.2.2 浮点类型 7

1.2.3 char 类型 8

1.2.4 boolean 类型 8

1.3 变量 8

1.3.1 变量声明 8

1.3.2 标识符 9

1.3.3 初始化 9

1.3.4 常量 9

1.4 算术运算 10

1.4.1 赋值 11

1.4.2 基本算术运算符 11

1.4.3 数学方法 12

1.4.4 数值的类型转换 12

1.4.5 关系运算符和逻辑运算符 13

1.4.6 大数 14

1.5 字符串 14

1.5.1 拼接 14

1.5.2 子串 15

1.5.3 字符串比较 15

1.5.4 数值和字符串的相互转换 16

1.5.5 字符串 API 16

1.5.6 码点和代码单元 18

1.5.7 文本块 19

1.6 输入和输出 20

1.6.1 读取输入 20

1.6.2 格式化输出 21

1.7 控制流 22

1.7.1 分支 23

1.7.2 switch 语句 23

1.7.3 循环 24

1.7.4 break 和 continue 25

1.7.5 局部变量的作用域 26

1.8 数组和数组列表 27

1.8.1 使用数组 27

1.8.2 数组构造 28

1.8.3 数组列表 28

1.8.4 基本类型的封装类 29

1.8.5 增强 for 循环 30

1.8.6 复制数组和数组列表 30

1.8.7 数组算法 31

1.8.8 命令行参数 31

1.8.9 多维数组 31

1.9 功能分解 33

1.9.1 声明和调用静态方法 33

1.9.2 数组参数和返回值 33

1.9.3 可变参数 34

练习 34

第 2 章 面向对象编程 36

2.1 使用对象 36

2.1.1 访问器方法和修改器方法 37

2.1.2 对象引用 38

2.2 实现类 39

2.2.1 实例变量 39

2.2.2 方法头 39

2.2.3 方法体 39

2.2.4 实例方法调用 40

2.2.5 this 引用 40

2.2.6 按值调用 41

2.3 对象构造 42

2.3.1 实现构造器 42

2.3.2 重载 42

2.3.3 从一个构造器调用另一个构造器 43

2.3.4 默认初始化 43

2.3.5 实例变量初始化 43

2.3.6 final 实例变量 44

2.3.7 无参数构造器 44

2.4 记录 44

2.4.1 记录的概念 45

2.4.2 构造器:标准的、自定义的和简洁的 46

2.5 静态变量和静态方法 46

2.5.1 静态变量 46

2.5.2 静态常量 47

2.5.3 静态初始化块 47

2.5.4 静态方法 47

2.5.5 工厂方法 48

2.6 包 49

2.6.1 包声明 49

2.6.2 jar 命令 49

2.6.3 类路径 50

2.6.4 包访问 51

2.6.5 导入类 51

2.6.6 静态导入 52

2.7 嵌套类 52

2.7.1 静态嵌套类 52

2.7.2 内部类 53

2.7.3 内部类的特殊语法规则 54

2.8 文档注释 55

2.8.1 注释插入 55

2.8.2 类注释 56

2.8.3 方法注释 56

2.8.4 变量注释 56

2.8.5 通用注释 57

2.8.6 链接 57

2.8.7 包注释、模块注释和概述注释 57

2.8.8 注释提取 58

练习 58

第 3 章 接口和 Lambda 表达式 60

3.1 接口 60

3.1.1 使用接口 60

3.1.2 声明接口 61

3.1.3 实现接口 61

3.1.4 转换为接口类型 62

3.1.5 强制转换和 instanceof运算符 63

3.1.6 instanceof 的“模式匹配”形式 63

3.1.7 扩展接口 64

3.1.8 实现多个接口 64

3.1.9 常量 64

3.2 静态方法、默认方法和私有方法 64

3.2.1 静态方法 65

3.2.2 默认方法 65

3.2.3 解决默认方法冲突 65

3.2.4 私有方法 66

3.3 接口示例 66

3.3.1 Comparable 接口 67

3.3.2 Comparator 接口 68

3.3.3 Runnable 接口 68

3.3.4 用户界面回调 68

3.4 Lambda 表达式 69

3.4.1 Lambda 表达式的语法 69

3.4.2 函数式接口 70

3.5 方法引用和构造器引用 71

3.5.1 方法引用 71

3.5.2 构造器引用 71

3.6 处理 Lambda 表达式 72

3.6.1 实现延迟执行 72

3.6.2 选择函数式接口 73

3.6.3 实现自己的函数式接口 74

3.7 Lambda 表达式作用域和变量作用域 74

3.7.1 Lambda 表达式作用域 75

3.7.2 封闭作用域内访问变量 75

3.8 高阶函数 76

3.8.1 返回函数的方法 76

3.8.2 修改函数的方法 77

3.8.3 Comparator 方法 77

3.9 局部类和匿名类 78

3.9.1 局部类 78

3.9.2 匿名类 78

练习 79

第 4 章 继承与反射 81

4.1 扩展类 81

4.1.1 超类和子类 81

4.1.2 定义和继承子类方法 82

4.1.3 方法覆盖 82

4.1.4 子类构造 83

4.1.5 超类赋值 83

4.1.6 强制类型转换 84

4.1.7 匿名子类 84

4.1.8 带 super 的方法表达式 84

4.2 继承的层次结构 85

4.2.1 final 方法和 final 类 85

4.2.2 抽象方法和抽象类 85

4.2.3 受保护的访问 86

4.2.4 密封类 86

4.2.5 继承和默认方法 88

4.3 Object:宇宙级超类 88

4.3.1 toString 方法 89

4.3.2 equals 方法 90

4.3.3 hashCode 方法 91

4.3.4 克隆对象 92

4.4 枚举 94

4.4.1 枚举的方法 94

4.4.2 构造器、方法和字段 94

4.4.3 实例的主体 95

4.4.4 静态成员 95

4.4.5 switch 中的枚举 96

4.5 运行时类型信息和资源 96

4.5.1 Class 类 96

4.5.2 加载资源 98

4.5.3 类加载器 98

4.5.4 上下文类加载器 99

4.5.5 服务加载器 100

4.6 反射 101

4.6.1 枚举类的成员 101

4.6.2 检查对象 102

4.6.3 调用方法 102

4.6.4 构造对象 103

4.6.5 JavaBeans 103

4.6.6 使用数组 104

4.6.7 代理 105

练习 106

第 5 章 异常、断言和日志 108

5.1 异常处理 108

5.1.1 抛出异常 108

5.1.2 异常层次结构 109

5.1.3 声明检查型异常 110

5.1.4 捕获异常 110

5.1.5 带资源的 try 语句 111

5.1.6 finally 子句 112

5.1.7 重新抛出异常和链接异常 113

5.1.8 未捕获的异常和栈跟踪 114

5.1.9 抛出异常的 API 方法 114

5.2 断言 115

5.2.1 使用断言 115

5.2.2 启用和禁用断言 115

5.3 日志 116

5.3.1 是否应使用 Java 日志框架 116

5.3.2 日志记录基础 116

5.3.3 平台日志 API 117

5.3 4 日志记录配置 118

5.3.5 日志处理程序 118

5.3.6 过滤器和格式化器 120

练习 121

第 6 章 泛型编程 123

6.1 泛型类 123

6.2 泛型方法 124

6.3 类型限定 124

6.4 类型差异和通配符 125

6.4.1 子类型通配符 125

6.4.2 超类型通配符 126

6.4.3 带类型变量的通配符 127

6.4.4 无限定通配符 127

6.4.5 通配符捕获 128

6.5 Java 虚拟机中的泛型 128

6.5.1 类型擦除 128

6.5.2 强制类型转换插入 129

6.5.3 桥接方法 129

6.6 泛型的限制 130

6.6.1 无基本类型参数 130

6.6.2 运行时所有类型都是原始的 130

6.6.3 无法实例化类型变量 131

6.6.4 不能构造参数化类型的数组 132

6.6.5 类类型变量在静态上下文中无效 132

6.6.6 擦除后方法不能发生冲突 133

6.6.7 异常和泛型 133

6.7 反射和泛型 134

6.7.1 Class类 134

6.7.2 虚拟机中的泛型类型信息 135

练习 136

第 7 章 容器 138

7.1 容器框架概述 138

7.2 迭代器 140

7.3 集合 141

7.4 映射 142

7.5 其他容器 144

7.5.1 属性 144

7.5.2 位集 145

7.5.3 枚举集合和枚举映射 146

7.5.4 栈、队列、双向队列和优先队列 146

7.5.5 弱哈希映射 147

7.6 视图 147

7.6.1 小型容器 147

7.6.2 范围 148

7.6.3 不可修改视图 148

练习 149

第 8 章 流 151

8.1 从迭代到流操作 151

8.2 流的创建 152

8.3 filter、map 和 flatMap 方法 153

8.4 提取子流和组合流 155

8.5 其他流转换 155

8.6 简单约简 156

8.7 Optional 类型 156

8.7.1 生成替代值 156

8.7.2 值存在就消费值 157

8.7.3 流水线化 Optional 值 157

8.7.4 不使用 Optional 值的方式 157

8.7.5 创建 Optional 值 158

8.7.6 用 flatMap 合成 Optional 值函数 158

8.7.7 将 Optional 转换为流 159

8.8 收集结果 159

8.9 收集到映射中 160

8.10 分组和分区 161

8.11 下游收集器 161

8.12 约简操作 163

8.13 基本类型流 164

8.14 并行流 165

练习 166

第 9 章 输入和输出处理 168

9.1 输入/输出流、读取器和写入器 168

9.1.1 获取流 168

9.1.2 字节的读取 169

9.1.3 字节的写入 169

9.1.4 字符编码 170

9.1.5 文本输入 171

9.1.6 文本输出 172

9.1.7 二进制数据的读写 173

9.1.8 随机访问文件 173

9.1.9 内存映射文件 173

9.1.10 文件锁定 174

9.2 路径、文件和目录 174

9.2.1 路径 174

9.2.2 创建文件和目录 175

9.2.3 复制、移动和删除文件 176

9.2.4 访问目录条目 177

9.2.5 ZIP 文件系统 178

9.3 HTTP 连接 179

9.3.1 URLConnection 类和 HttpURLConnection 类 179

9.3.2 HTTP 客户端 API 180

9.4 正则表达式 181

9.4.1 正则表达式语法 181

9.4.2 检测匹配 183

9.4.3 查找所有匹配 184

9.4.4 分组 184

9.4.5 按分隔符拆分 185

9.4.6 替换匹配 185

9.4.7 标志 186

9.5 序列化 186

9.5.1 Serializable 接口 186

9.5.2 瞬态实例变量 187

9.5.3 readObject 和 writeObject方法 188

9.5.4 readExternal 和 writeExternal 方法 189

9.5.5 readResolve 和 writeReplace 方法 189

9.5.6 版本管理 190

9.5.7 反序列化和安全性 191

练习 192

第 10 章 并发编程 194

10.1 并发任务 194

10.1.1 运行任务 194

10.1.2 Future 196

10.2 异步计算 197

10.2.1 可完成 Future 197

10.2.2 组合可完成 Future 198

10.2.3 用户界面回调中的长时间运行任务 200

10.3 线程安全 201

10.3.1 可见性 201

10.3.2 竞争条件 202

10.3.3 安全并发策略 203

10.3.4 不可变类 204

10.4 并行算法 204

10.4.1 并行流 204

10.4.2 并行数组操作 205

10.5 线程安全数据结构 205

10.5.1 并发哈希映射 206

10.5.2 阻塞队列 206

10.5.3 其他线程安全数据结构 207

10.6 原子计数器和累加器 208

10.7 锁和条件 209

10.7.1 锁 209

10.7.2 synchronized 关键字 210

10.7.3 等待条件 211

10.8 线程 212

10.8.1 启动线程 212

10.8.2 线程中断 213

10.8.3 线程局部变量 214

10.8.4 其他线程特性 214

10.9 进程 215

10.9.1 创建进程 215

10.9.2 运行进程 216

10.9.3 进程句柄 217

练习 217

第 11 章 注解 221

11.1 使用注解 221

11.1.1 注解元素 221

11.1.2 多重注解和重复注解 222

11.1.3 注解声明 222

11.1.4 类型使用注解 223

11.1.5 使接收器显式 224

11.2 定义注解 224

11.3 标准注解 226

11.3.1 编译用注解 226

11.3.2 元注解 227

11.4 在运行时处理注解 228

11.5 源码级注解处理 230

11.5.1 注解处理器 230

11.5.2 语言模型 APl 230

11.5.3 使用注解生成源代码 231

练习 232

第 12 章 日期和时间 API 234

12.1 时间线 234

12.2 本地日期 235

12.3 日期调整器 237

12.4 本地时间 238

12.5 时区时间 238

12.6 格式化和解析 240

12.7 与遗留代码互操作 242

练习 243

第 13 章 国际化 244

13.1 区域设置 244

13.1.1 指定区域设置 245

13.1.2 默认区域设置 246

13.1.3 显示名称 247

13.2 数值格式 247

13.3 货币 248

13.4 日期和时间格式化 248

13.5 排序和规范化 249

13.6 消息格式化 250

13.7 资源包 251

13.7.1 组织资源包 252

13.7.2 包类 253

13.8 字符编码 253

13.9 首选项 254

练习 255

第 14 章 编译和脚本 256

14.1 编译器 API 256

14.1.1 调用编译器 256

14.1.2 启动编译任务 256

14.1.3 捕获诊断信息 257

14.1.4 从内存读取源文件 257

14.1.5 将字节码写入内存 257

14.2 脚本 API 258

14.2.1 获取脚本引擎 258

14.2.2 脚本求值 259

14.2.3 绑定 259

14.2.4 重定向输入和输出 259

14.2.5 调用脚本函数和方法 260

14.2.6 编译脚本 260

练习 261

第 15 章 Java 平台模块系统 262

15.1 模块的概念 262

15.2 给模块命名 263

15.3 模块化“Hello,World!”程序 264

15.4 对模块的需求 265

15.5 导出包 266

15.6 模块和反射式访问 267

15.7 模块化 JAR 269

15.8 自动模块 270

15.9 不具名模块 271

15.10 用于迁移的命令行标志 271

15.11 传递性需求和静态需求 272

15.12 限定导出和开放 273

15.13 服务加载 273

15.14 操作模块的工具 274

练习 276

展开全部

作者简介

[美]凯·S.霍斯特曼(Cay S.Horstmann) 《Java 核心技术(原书第 12 版)》两卷本(Core Java, Volumes I and II, Twelfth Edition)的主要作者,他还为专业编程人员和计算机科学专业的学生撰写了十多本书。 他是美国圣何塞州立大学计算机专业的科学荣誉退休教授,也是一名Java Champion。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航