《写给大忙人的Java SE 9核心技术》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)Cay S· Horstmann
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2018
  • ISBN:9787121342783
  • 页数:526 页
图书介绍:本书是《Java核心技术》的主要作者Cay S. Horstmann全面、细致介绍Java 9全新特性的力作,包含大师一直以来对Java的真知灼见。本书首先介绍Java编程的基础内容,然后从Java 9的重要特性讲起,带领读者一路探索和实践。内容浅显易懂,文笔风趣幽默;包含生动、可实际应用的示例程序源代码——这种亲身实践有助于加深对Java 9新特性的理解。即便对于初学者来说,本书也具有很强的参考价值。对于那些有一定Java开发使用经验的读者来说,本书不仅可以巩固基本Java编程核心基础,同时还可与时俱进学习Java更新的思想和更强大的技术。

第1章 基本的编程结构 1

1.1第一个程序 2

1.1.1“Hello,World!”程序解析 2

1.1.2编译与运行Java程序 3

1.1.3方法调用 5

1.1.4JShell 7

1.2基本类型 11

1.2.1有符号整型 11

1.2.2浮点类型 12

1.2.3char型 13

1.2.4布尔型 14

1.3变量 14

1.3.1变量的声明 14

1.3.2名称 14

1.3.3初始化 15

1.3.4常量 15

1.4算术操作 17

1.4.1赋值 18

1.4.2基本运算 18

1.4.3数学方法 20

1.4.4数字类型转换 21

1.4.5关系操作符和逻辑操作符 22

1.4.6大数 24

1.5字符串 24

1.5.1字符串的连接 25

1.5.2子字符串 26

1.5.3字符串比较 26

1.5.4数字与字符串转换 28

1.5.5String类API 29

1.5.6编码点和编码单元 31

1.6输入与输出 33

1.6.1读取输入 33

1.6.2格式化输出 35

1.7控制流 37

1.7.1分支 37

1.7.2循环 39

1.7.3跳出循环与继续循环 41

1.7.4局部变量作用域 43

1.8数组和数组列表 44

1.8.1使用数组 44

1.8.2构造数组 45

1.8.3数组列表 47

1.8.4基本类型包装类 48

1.8.5增强的for循环 48

1.8.6数组与数组列表的复制 49

1.8.7数组算法 50

1.8.8命令行参数 51

1.8.9多维数组 52

1.9功能分解 55

1.9.1静态方法的声明与调用 55

1.9.2数组参数与返回值 55

1.9.3可变参数 56

练习 57

第2章 面向对象编程 61

2.1使用对象 62

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

2.1.2对象引用 65

2.2实现类 67

2.2.1实例变量 67

2.2.2方法头 67

2.2.3方法体 68

2.2.4实例方法调用 69

2.2.5this引用 69

2.2.6值调用 70

2.3构造对象 72

2.3.1实现构造函数 72

2.3.2重载 73

2.3.3调用另一个构造函数 74

2.3.4默认初始化 74

2.3.5实例变量的初始化 75

2.3.6final实例变量 76

2.3.7无参构造函数 76

2.4静态变量和方法 77

2.4.1静态变量 77

2.4.2静态常量 78

2.4.3静态初始块 79

2.4.4静态方法 80

2.4.5工厂方法 81

2.5包 82

2.5.1包的声明 82

2.5.2jar命令 83

2.5.3类路径 84

2.5.4包访问权限 86

2.5.5导入类 87

2.5.6静态导入 88

2.6嵌套类 89

2.6.1静态嵌套类 89

2.6.2内部类 91

2.6.3内部类的特殊语法 93

2.7文档注释 95

2.7.1插入注释 95

2.7.2类注释 96

2.7.3方法注释 97

2.7.4变量注释 97

2.7.5通用注释 98

2.7.6链接 98

2.7.7包、模块和概述注释 99

2.7.8注释的提取 99

练习 100

第3章 接口和lambda表达式 105

3.1接口 106

3.1.1声明接口 106

3.1.2实现接口 107

3.1.3转换为接口类型 109

3.1.4强制类型转换和instanceof操作符 109

3.1.5继承接口 110

3.1.6实现多个接口 111

3.1.7常量 111

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

3.2.1静态方法 112

3.2.2默认方法 112

3.2.3解决默认方法冲突的问题 113

3.2.4私有方法 115

3.3接口示例 115

3.3.1Comparable接口 115

3.3.2Comparator接口 117

3.3.3Runnable接口 118

3.3.4UI回调 119

3.4lambda表达式 120

3.4.1lambda表达式语法 121

3.4.2函数式接口 122

3.5方法引用和构造函数引用 123

3.5.1方法引用 123

3.5.2构造函数引用 125

3.6使用lambda表达式 126

3.6.1实现延迟执行 126

3.6.2选择函数式接口 127

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

3.7lambda表达式和变量作用域 130

3.7.1lambda表达式的作用域 130

3.7.2访问来自闭合作用域的变量 131

3.8高阶函数 133

3.8.1返回函数的方法 134

3.8.2修改函数的方法 134

3.8.3Comparator方法 135

3.9局部类和匿名类 136

3.9.1局部类 136

3.9.2匿名类 137

练习 138

第4章 继承与反射 143

4.1继承一个类 144

4.1.1父类与子类 144

4.1.2定义和继承子类方法 145

4.1.3方法覆盖 145

4.1.4子类的构造 147

4.1.5父类赋值 147

4.1.6转换 148

4.1.7final方法和类 149

4.1.8抽象方法和类 149

4.1.9受保护访问 150

4.1.10匿名子类 151

4.1.11继承和默认方法 152

4.1.12带super的方法表达式 153

4.2Object:终极父类 153

4.2.1toString方法 154

4.2.2equals方法 156

4.2.3hashCode方法 159

4.2.4克隆对象 160

4.3枚举 163

4.3.1枚举方法 164

4.3.2构造函数、方法和域 165

4.3.3实例的实现体 165

4.3.4静态成员 166

4.3.5switch枚举对象 167

4.4运行时类型信息和资源 168

4.4.1Class类 168

4.4.2资源加载 172

4.4.3类加载器 172

4.4.4上下文类加载器 174

4.4.5服务加载器 176

4.5反射 178

4.5.1枚举类成员 178

4.5.2对象检查 179

4.5.3方法调用 180

4.5.4对象构造 181

4.5.5JavaBeans 182

4.5.6使用数组 183

4.5.7代理 185

练习 187

第5章 异常、断言和日志处理 191

5.1异常处理 192

5.1.1异常抛出 192

5.1.2异常继承层次 193

5.1.3已检查异常的声明 195

5.1.4异常捕获 196

5.1.5try-with-resources语句 197

5.1.6finally子句 199

5.1.7异常重抛和链接 200

5.1.8未捕获的异常和堆栈踪迹 202

5.1.9Objects.requireNonNull方法 203

5.2断言 204

5.2.1使用断言 205

5.2.2启用和禁用断言 205

5.3记录日志 206

5.3.1采用日志记录器 206

5.3.2日志记录器 207

5.3.3日志级别 207

5.3.4其他日志记录方法 208

5.3.5日志记录的配置项 210

5.3.6日志处理器 211

5.3.7过滤器和格式化器 214

练习 215

第6章 泛型编程 219

6.1泛型类 220

6.2泛型方法 221

6.3类型限定 222

6.4类型变异和通配符 223

6.4.1子类型通配符 224

6.4.2父类型通配符 225

6.4.3带类型变量的通配符 226

6.4.4无限定通配符 228

6.4.5通配符捕获 228

6.5Java虚拟机中的泛型 229

6.5.1类型擦除 229

6.5.2转换插入 230

6.5.3桥方法 230

6.6泛型约束 232

6.6.1无基本类型参数 232

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

6.6.3不能实例化类型变量 234

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

6.6.5静态上下文中的类类型变量不是有效的 237

6.6.6类型擦除后的方法可能不冲突 238

6.6.7异常与泛型 239

6.7反射与泛型 240

6.7.1Class〈T〉类 240

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

练习 243

第7章 集合 249

7.1集合框架概要 249

7.2迭代器 254

7.3set 256

7.4map 257

7.5其他集合 261

7.5.1Properties 261

7.5.2位组 262

7.5.3枚举set和枚举map 264

7.5.4栈、队列、双端队列、优先级队列 264

7.5.5弱哈希映射表 266

7.6视图 266

7.6.1小集合 267

7.6.2范围 268

7.6.3不可修改的视图 268

练习 269

第8章 Stream 273

8.1从迭代到Stream操作 274

8.2创建Stream 275

8.3filter、map和flatMap方法 277

8.4提取子流和组合流 279

8.5其他流转换 280

8.6简单归约 281

8.7Optional类型 282

8.7.1如何使用Optional类型值 282

8.7.2如何不使用Optional类型值 284

8.7.3创建Optional类型值 284

8.7.4使用flatMap来组合可选值函数 285

8.7.5将Optional转变为流 286

8.8收集结果 287

8.9将结果收集到map中 289

8.10分组和分片 290

8.11下游收集器 291

8.12归约操作 294

8.13基本类型流 296

8.14并行流 297

练习 300

第9章 输入与输出处理 305

9.1输入/输出流、Reader和Writer 306

9.1.1获取流对象 306

9.1.2读取字节 307

9.1.3写字节 308

9.1.4字符编码 308

9.1.5文本输入 311

9.1.6文本输出 313

9.1.7读/写二进制数据 314

9.1.8随机存取文件 315

9.1.9内存映射文件 315

9.1.10文件锁 316

9.2路径、文件和目录 317

9.2.1路径 317

9.2.2创建文件和目录 319

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

9.2.4访问目录内容 321

9.2.5ZIP文件系统 324

9.3HTTP连接 325

9.3.1URLConnection类和HttpURLConnection类 326

9.3.2HTTP Client API 327

9.4正则表达式 330

9.4.1正则表达式概述 330

9.4.2找到一个匹配 334

9.4.3找到所有匹配 335

9.4.4分组 336

9.4.5以分隔符号分割 337

9.4.6替换匹配结果 338

9.4.7标记 339

9.5序列化 339

9.5.1Serializable接口 340

9.5.2瞬态实例变量 342

9.5.3readObject和writeobject方法 342

9.5.4readResolve和writeReplace方法 343

9.5.5版本化 345

练习 346

第10章 并发编程 351

10.1并发任务 352

10.1.1运行任务 352

10.1.2Future 354

10.2异步计算 357

10.2.1可完成的Future 357

10.2.2组合可完成的Future 359

10.2.3UI回调中的长时间运行任务 362

10.3线程安全 364

10.3.1可见性 364

10.3.2竞争条件 366

10.3.3安全并发的策略 369

10.3.4不可变类 369

10.4并行算法 370

10.4.1并行流 370

10.4.2并行数组操作 371

10.5线程安全的数据结构 372

10.5.1ConcurrentHashMap 373

10.5.2阻塞队列 374

10.5.3其他线程安全的数据结构 375

10.6原子计数器和累加器 376

10.7锁和条件 379

10.7.1锁 379

10.7.2synchronized关键字 380

10.7.3条件等待 382

10.8线程 385

10.8.1启动线程 385

10.8.2线程中断 386

10.8.3线程变量 388

10.8.4线程的其他属性 388

10.9进程 389

10.9.1构建进程 389

10.9.2运行进程 391

10.9.3ProcessHandle 392

练习 393

第11章 注解 401

11.1使用注解 402

11.1.1注解元素 402

11.1.2多注解和重复注解 403

11.1.3注解声明 404

11.1.4注解类型用途 405

11.1.5明确接收者 406

11.2定义注解 408

11.3标准注解 410

11.3.1编译相关的注解 411

11.3.2资源管理相关的注解 412

11.3.3元注解 412

11.4运行时注解处理 414

11.5源码级注解处理 418

11.5.1注解处理器 418

11.5.2语言模型API 419

11.5.3使用注解生成源码 419

练习 423

第12章 日期和时间API 427

12.1时间线 428

12.2本地日期 430

12.3日期调整器 433

12.4本地时间 435

12.5时区时间 436

12.6格式化和解析 439

12.7应对遗留代码 442

练习 443

第13章 国际化 447

13.1本地化 448

13.1.1指定本地化 448

13.1.2默认的locale 451

13.1.3显示名称 452

13.2数字格式化 453

13.3货币符号 454

13.4日期和时间格式化 455

13.5排序和规范化 457

13.6消息格式化 459

13.7资源束 461

13.7.1组织资源束 462

13.7.2资源束类 464

13.8字符编码 465

13.9首选项 466

练习 468

第14章 编译与脚本 471

14.1编译器API 471

14.1.1调用编译器 472

14.1.2启动编译任务 472

14.1.3从内存读取源文件 473

14.1.4向内存写入字节码 474

14.1.5捕获诊断信息 476

14.2脚本API 476

14.2.1获取脚本引擎 476

14.2.2绑定 477

14.2.3重定向输入与输出 478

14.2.4调用脚本函数和方法 479

14.2.5编译脚本 480

14.3Nashom脚本引擎 481

14.3.1从命令行运行Nashom 481

14.3.2调用getter、setter和重载方法 482

14.3.3构造Java对象 483

14.3.4JavaScript和Java中的字符串 485

14.3.5数字 485

14.3.6使用数组 486

14.3.7列表与映射 487

14.3.8lambda表达式 488

14.3.9继承Java类与实现Java接口 489

14.3.10异常 491

14.4shell脚本与Nashorn 491

14.4.1执行shell命令 492

14.4.2字符串插值 492

14.4.3脚本输入 493

练习 494

第15章 Java平台模块系统 499

15.1模块的概念 500

15.2模块命名 501

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

15.4引入模块 504

15.5导出包 506

15.6模块化和反射访问 510

15.7模块化的JAR 513

15.8自动模块和未命名模块 515

15.9用于迁移的命令行标识 516

15.10传递和静态引入 518

15.11限定导入和打开 520

15.12服务加载 521

15.13模块化用的工具 522

练习 525