新书推荐 | Java核心技术 卷II 高级特性(原书第11版)

新书推荐

《Java核心技术 卷II 高级特性(原书第11版)》

长按二维码
了解及购买

全新第11版!针对Java SE9、10、11全面更新!Java领域极具影响力和价值的著作之一,与《Java编程思想》齐名,10余年全球畅销不衰,广受好评。本卷主要介绍编程人员进行专业软件开发时需要了解的高级主题。

编辑推荐

全新第11版!针对JavaSE9、10、11全面更新!Java领域极具影响力和价值的著作之一,与《Java编程思想》齐名,10余年全球畅销不衰,广受好评。本卷主要介绍编程人员进行专业软件开发时需要了解的高级主题。

内容简介

本书由拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),本版针对Java 11全面更新。 

全书共分12章。

  • 第1章介绍了Java中的流库;

  • 第2章涵盖输入/输出处理,探讨了Java 11中引入的广受欢迎的改进和优化;

  • 第3章介绍了XML,展示如何解析XML文件、生成XML和使用XSL转换;

  • 第4章讲解了网络API,以及怎样连接到服务器、实现自己的服务器、创建HTTP连接,并讨论了新的HTTP客户端;

  • 第5章介绍了数据库编程,重点讲解JDBC,即Java数据库连接API;

  • 第6章涵盖如何使用新的日期和时间库来处理日历及时区;

  • 第7章讨论国际化;

  • 第8章介绍3种处理代码的技术;

  • 第9章讲解从Java 9开始引入的Java平台模块系统,以促进Java平台和核心类库的有序演化;

  • 第10章继续介绍Java安全模型,展示怎样编写类加载器和安全管理器,以及允许使用消息、代码签名、授权和认证及加密等重要特性的安全API;

  • 第11章讨论没有纳入卷Ⅰ的所有Swing知识,包括树形构件、表格构件,以及Java 2D API;

  • 第12章介绍本地方法,这个功能支持你调用为微软Windows API这样的特殊机制而编写的各种方法。

作者简介

[美]凯·S.霍斯特曼(Cay S. Horstmann )圣何塞州立大学计算机科学系教授、Java的倡导者。他是《Java核心技术》两卷本的作者,并著有《Core Java SE 9 for the Impatient, Second Edition》 (Addison-Wesley 2018)和《Scala for the Impatient, Second Edition》(Addison- Wesley, 2017)。他还为专业程序员和计算机科学专业的学生撰写过数十本其他图书。

目录

译者序

前言

致谢

第1章 Java 8的流库  1

1.1 从迭代到流的操作  1

1.2 流的创建  3

1.3 f?ilter、map和f?latMap方法  8

1.4 抽取子流和组合流  9

1.5 其他的流转换  10

1.6 简单约简  11

1.7 Optional类型  13

1.7.1 获取Optional值  13

1.7.2 消费Optional值  13

1.7.3 管道化Optional值  14

1.7.4 不适合使用Optional值的方式  15

1.7.5 创建Optional值  16

1.7.6 用f?latMap构建Optional值的函数  16

1.7.7 将Optional转换为流  17

1.8 收集结果  19

1.9 收集到映射表中  24

1.10 群组和分区  27

1.11 下游收集器  28

1.12 约简操作  32

1.13 基本类型流  34

1.14 并行流  39

第2章 输入与输出  43

2.1 输入/输出流  43

2.1.1 读写字节  43

2.1.2 完整的流家族  46

2.1.3 组合输入/输出流过滤器  50

2.1.4 文本输入与输出  53

2.1.5 如何写出文本输出  53

2.1.6 如何读入文本输入  55

2.1.7 以文本格式存储对象  56

2.1.8 字符编码方式  59

2.2 读写二进制数据  61

2.2.1 DataInput和DataOutput接口  61

2.2.2 随机访问文件  63

2.2.3 ZIP文档  67

2.3 对象输入/输出流与序列化  70

2.3.1 保存和加载序列化对象  70

2.3.2 理解对象序列化的文件格式  74

2.3.3 修改默认的序列化机制  79

2.3.4 序列化单例和类型安全的枚举  81

2.3.5 版本管理  82

2.3.6 为克隆使用序列化  84

2.4 操作文件  86

2.4.1 Path  86

2.4.2 读写文件  89

2.4.3 创建文件和目录  90

2.4.4 复制、移动和删除文件  91

2.4.5 获取文件信息  92

2.4.6 访问目录中的项  94

2.4.7 使用目录流  95

2.4.8 ZIP文件系统  98

2.5 内存映射文件  99

2.5.1 内存映射文件的性能  99

2.5.2 缓冲区数据结构  105

2.6 文件加锁机制  107

2.7 正则表达式  109

2.7.1 正则表达式语法  109

2.7.2 匹配字符串  112

2.7.3 找出多个匹配  115

2.7.4 用分隔符来分割  117

2.7.5 替换匹配  117

第3章 XML  120

3.1 XML概述  120

3.2 XML文档的结构  122

3.3 解析XML文档  124

3.4 验证XML文档  133

3.4.1 文档类型定义  134

3.4.2 XML Schema  140

3.4.3 一个实践示例  142

3.5 使用XPath来定位信息  148

3.6 使用命名空间  152

3.7 流机制解析器  154

3.7.1 使用SAX解析器  154

3.7.2 使用StAX解析器  159

3.8 生成XML文档  162

3.8.1 不带命名空间的文档  162

3.8.2 带命名空间的文档  163

3.8.3 写出文档  163

3.8.4 使用StAX写出XML文档  165

3.8.5 示例:生成SVG文件  170

3.9 XSL转换  171

第4章 网络  180

4.1 连接到服务器  180

4.1.1 使用telnet  180

4.1.2 用Java连接到服务器  182

4.1.3 套接字超时  184

4.1.4 因特网地址  185

4.2 实现服务器  186

4.2.1 服务器套接字  186

4.2.2 为多个客户端服务  189

4.2.3 半关闭  192

4.2.4 可中断套接字  193

4.3 获取Web数据  199

4.3.1 URL和URI  199

4.3.2 使用URLConnection获取信息  201

4.3.3 提交表单数据  207

4.4 HTTP客户端  215

4.5 发送E-mail  221

第5章 数据库编程  225

5.1 JDBC的设计  225

5.1.1 JDBC驱动程序类型  226

5.1.2 JDBC的典型用法  227

5.2 结构化查询语言  227

5.3 JDBC配置  232

5.3.1 数据库URL  232

5.3.2 驱动程序JAR文件  233

5.3.3 启动数据库  233

5.3.4 注册驱动器类  234

5.3.5 连接到数据库  234

5.4 使用JDBC语句  237

5.4.1 执行SQL语句  237

5.4.2 管理连接、语句和结果集  240

5.4.3 分析SQL异常  240

5.4.4 组装数据库  242

5.5 执行查询操作  246

5.5.1 预备语句  246

5.5.2 读写LOB  252

5.5.3 SQL转义  253

5.5.4 多结果集  254

5.5.5 获取自动生成的键  255

5.6 可滚动和可更新的结果集  256

5.6.1 可滚动的结果集  256

5.6.2 可更新的结果集  258

5.7 行集  261

5.7.1 构建行集  262

5.7.2 被缓存的行集  262

5.8 元数据  265

5.9 事务  274

5.9.1 用JDBC对事务编程  274

5.9.2 保存点  275

5.9.3 批量更新  275

5.9.4 高级SQL类型  277

5.10 Web与企业应用中的连接管理  278

第6章 日期和时间API  280

6.1 时间线  280

6.2 本地日期  284

6.3 日期调整器  288

6.4 本地时间  289

6.5 时区时间  290

6.6 格式化和解析  294

6.7 与遗留代码的互操作  298

第7章 国际化  300

7.1 locale  300

7.1.1 为什么需要locale  300

7.1.2 指定locale  301

7.1.3 默认locale  303

7.1.4 显示名字  304

7.2 数字格式  305

7.2.1 格式化数字值  306

7.2.2 货币  310

7.3 日期和时间  311

7.4 排序和规范化  318

7.5 消息格式化  323

7.5.1 格式化数字和日期  324

7.5.2 选择格式  325

7.6 文本输入和输出  327

7.6.1 文本文件  327

7.6.2 行结束符  327

7.6.3 控制台  328

7.6.4 日志文件  328

7.6.5 UTF-8字节顺序标志  329

7.6.6 源文件的字符编码  329

7.7 资源包  330

7.7.1 定位资源包  330

7.7.2 属性文件  331

7.7.3 包类  332

7.8 一个完整的例子  333

第8章 脚本、编译与注解处理  348

8.1 Java平台的脚本机制  348

8.1.1 获取脚本引擎  348

8.1.2 脚本计算与绑定  349

8.1.3 重定向输入和输出  351

8.1.4 调用脚本的函数和方法  352

8.1.5 编译脚本  353

8.1.6 示例:用脚本处理GUI事件  354

8.2 编译器API  358

8.2.1 调用编译器  358

8.2.2 发起编译任务  359

8.2.3 捕获诊断消息  359

8.2.4 从内存中读取源文件  360

8.2.5 将字节码写出到内存中  360

8.2.6 示例:动态Java代码生成  362

8.3 使用注解  367

8.3.1 注解简介  368

8.3.2 示例:注解事件处理器  369

8.4 注解语法  373

8.4.1 注解接口  373

8.4.2 注解  375

8.4.3 注解各类声明  376

8.4.4 注解类型用法  377

8.4.5 注解this  378

8.5 标准注解  379

8.5.1 用于编译的注解  380

8.5.2 用于管理资源的注解  381

8.5.3 元注解  381

8.6 源码级注解处理  383

8.6.1 注解处理器  384

8.6.2 语言模型API  384

8.6.3 使用注解来生成源码  385

8.7 字节码工程  388

8.7.1 修改类文件  388

8.7.2 在加载时修改字节码  393

第9章 Java平台模块系统  395

9.1 模块的概念  395

9.2 对模块命名  396

9.3 模块化的“Hello, World!”程序  397

9.4 对模块的需求  398

9.5 导出包  400

9.6 模块化的JAR  403

9.7 模块和反射式访问  404

9.8 自动模块  406

9.9 不具名模块  408

9.10 用于迁移的命令行标识  409

9.11 传递的需求和静态的需求  410

9.12 限定导出和开放  411

9.13 服务加载  412

9.14 操作模块的工具  414

第10章 安全  417

10.1 类加载器  417

10.1.1 类加载过程  418

10.1.2 类加载器的层次结构  419

10.1.3 将类加载器用作命名空间  420

10.1.4 编写你自己的类加载器  421

10.1.5 字节码校验  426

10.2 安全管理器与访问权限  429

10.2.1 权限检查  429

10.2.2 Java平台安全性  431

10.2.3 安全策略文件  434

10.2.4 定制权限  439

10.2.5 实现权限类  440

10.3 用户认证  446

10.3.1 JAAS框架  446

10.3.2 JAAS登录模块  451

10.4 数字签名  459

10.4.1 消息摘要  460

10.4.2 消息签名  463

10.4.3 校验签名  465

10.4.4 认证问题  467

10.4.5 证书签名  469

10.4.6 证书请求  469

10.4.7 代码签名  470

10.5 加密  472

10.5.1 对称密码  473

10.5.2 密钥生成  474

10.5.3 密码流  478

10.5.4 公共密钥密码  479

第11章 高级Swing和图形化编程  483

11.1 表格  483

11.1.1 一个简单表格  483

11.1.2 表格模型  486

11.1.3 对行和列的操作  489

11.1.4 单元格的绘制和编辑  503

11.2 树  513

11.2.1 简单的树  514

11.2.2 节点枚举  526

11.2.3 绘制节点  528

11.2.4 监听树事件  530

11.2.5 定制树模型  536

11.3 高级AWT  544

11.3.1 绘图操作流程  544

11.3.2 形状  546

11.3.3 区域  560

11.3.4 笔画  561

11.3.5 着色  567

11.3.6 坐标变换  569

11.3.7 剪切  574

11.3.8 透明与组合  575

11.4 像素图  583

11.4.1 图像的读取器和写入器  583

11.4.2 图像处理  591

11.5 打印  604

11.5.1 图形打印  604

11.5.2 打印多页文件  612

11.5.3 打印服务程序  620

11.5.4 流打印服务程序  622

11.5.5 打印属性  625

第12章 本地方法  632

12.1 从Java程序中调用C函数  633

12.2 数值参数与返回值  637

12.3 字符串参数  639

12.4 访问域  644

12.4.1 访问实例域  644

12.4.2 访问静态域  648

12.5 编码签名  648

12.6 调用Java方法  650

12.6.1 实例方法  650

12.6.2 静态方法  653

12.6.3 构造器  654

12.6.4 另一种方法调用  654

12.7 访问数组元素  656

12.8 错误处理  659

12.9 使用调用API  663

12.10 完整的示例:访问Windows注册表  668

12.10.1 Windows注册表概述  668

12.10.2 访问注册表的Java平台接口  669

12.10.3 以本地方法实现注册表访问函数  670

你与世界

只差一个

公众号

  • 0
    点赞
  • 2
    评论
  • 0
    收藏
  • 扫一扫,分享海报

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值