您好,欢迎来到聚文网。 登录 免费注册
Java核心技术 卷II:高级特性(原书第12版)

Java核心技术 卷II:高级特性(原书第12版)

  • 出版社: 机械工业
  • 作者: 凯·S.霍斯特曼(Cay S. Horstmann)
  • 商品条码: 9787111719748
  • 版次: 1
  • 开本: 16开
  • 页数: 663
  • 出版年份: 2023
  • 印次: 1
定价:¥149 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
本书由获Jolt大奖并拥有20多年教学与研究经验的资深Java技术专家撰写,针对Java 17进行了全面更新。<br /> <br /> 全书共分12章。<br /> 第1章介绍了Java中的流。<br /> 第2章涵盖了输入/输出处理,包括读写文件和正则表达式。<br /> 第3章介绍了XML,展示如何解析XML文件、生成XML和使用XSL转换。<br /> 第4章讲解了网络API,以及怎样连接到服务器、实现自己的服务器、创建HTTP连接,并讨论了HTTP客户端。<br /> 第5章介绍了数据库编程,重点讲解JDBC,即Java数据库连接API。<br /> 第6章涵盖了如何使用日期和时间API来处理日期及时区。<br /> 第7章讨论了国际化。<br /> 第8章介绍了3种代码处理技术。<br /> 第9章讲解了从Java 9开始引入的Java平台模块系统,以促进Java平台和核心类库的有序演化。<br /> 第10章继续介绍了Java安全模型,展示怎样编写类加载器,以及如何使用消息摘要、代码签名、授权及加密等重要特性。<br /> 第11章讨论了高级Swing和图形化编程,包括表格构件、树构件、高级AWT,以及Java 2D API。<br /> 第12章介绍了本地方法,这个功能支持调用为微软Windows API这样的特殊机制而编写的各种方法。
作者简介
凯·S. 霍斯特曼(Cay S. Horstmann)<br />美国圣何塞州立大学计算机科学系教授、Java技术的坚定倡导者、国际计算机协会(ACM)计算机教育贡献杰出会士,常年在国际上的各类计算机峰会上进行技术分享,为硅谷输送计算机专业人才30余年。他是《Java核心技术》两卷本的作者,并著有Core Java SE 9 for the Impatient, Second Edition(Addison-Wesley, 2018)和Scala for the Impatient, Second Edition(Addison- Wesley, 2017)。他还为专业程序员和计算机科学专业的学生撰写过数十本其他图书。 <br />
目录
译者序<br />前言<br />致谢<br /><br />第1章 流 1<br />1.1 从迭代到流的操作 1<br />1.2 流的创建 3<br />1.3 f?ilter、map和f?latMap方法 8<br />1.4 抽取子流和组合流 10<br />1.5 其他的流转换 11<br />1.6 简单约简 12<br />1.7 Optional类型 13<br />1.7.1 获取Optional值 13<br />1.7.2 消费Optional值 14<br />1.7.3 管道化Optional值 15<br />1.7.4 不适合使用Optional值的方式 15<br />1.7.5 创建Optional值 17<br />1.7.6 用f?latMap构建Optional值的<br />      函数 17<br />1.7.7 将Optional转换为流 18<br />1.8 收集结果 20<br />1.9 收集到映射表中 24<br />1.10 群组和分区 27<br />1.11 下游收集器 28<br />1.12 约简操作 33<br />1.13 基本类型流 34<br />1.14 并行流 39<br />第2章 输入与输出 43<br />2.1 输入/输出流 43<br />2.1.1 读写字节 43<br />2.1.2 完整的流家族 46<br />2.1.3 组合输入/输出流过滤器 50<br />2.1.4 文本输入与输出 53<br />2.1.5 如何写出文本输出 53<br />2.1.6 如何读入文本输入 55<br />2.1.7 以文本格式存储对象 56<br />2.1.8 字符编码方式 59<br />2.2 读写二进制数据 61<br />2.2.1 DataInput和DataOutput接口 61<br />2.2.2 随机访问文件 63<br />2.2.3 ZIP文档 67<br />2.3 对象输入/输出流与序列化 70<br />2.3.1 保存和加载序列化对象 70<br />2.3.2 理解对象序列化的文件格式 74<br />2.3.3 修改默认的序列化机制 79<br />2.3.4 readResolve和writeReplace方法 82<br />2.3.5 版本管理 84<br />2.3.6 为克隆使用序列化 86<br />2.3.7 反序列化和安全 88<br />2.4 操作文件 90<br />2.4.1 Path 90<br />2.4.2 读写文件 92<br />2.4.3 创建文件和目录 93<br />2.4.4 复制、移动和删除文件 94<br />2.4.5 获取文件信息 96<br />2.4.6 访问目录中的项 97<br />2.4.7 使用目录流 98<br />2.4.8 ZIP文件系统 101<br />2.5 内存映射文件 102<br />2.5.1 内存映射文件的性能 102<br />2.5.2 缓冲区数据结构 108<br />2.6 文件加锁机制 110<br />2.7 正则表达式 112<br />2.7.1 正则表达式语法 112<br />2.7.2 匹配整个字符串 115<br />2.7.3 找出字符串中的所有匹配 116<br />2.7.4 群组 117<br />2.7.5 用分隔符来分割 119<br />2.7.6 替换匹配 120<br />2.7.7 标志 120<br />第3章 XML 124<br />3.1 XML概述 124<br />3.2 XML文档的结构 126<br />3.3 解析XML文档 128<br />3.4 验证XML文档 137<br />3.4.1 文档类型定义 137<br />3.4.2 XML Schema 144<br />3.4.3 一个实践示例 146<br />3.5 使用XPath来定位信息 152<br />3.6 使用命名空间 156<br />3.7 流机制解析器 158<br />3.7.1 使用SAX解析器 158<br />3.7.2 使用StAX解析器 163<br />3.8 生成XML文档 166<br />3.8.1 不带命名空间的文档 166<br />3.8.2 带命名空间的文档 167<br />3.8.3 写出文档 167<br />3.8.4 使用StAX写出XML文档 169<br />3.8.5 示例:生成SVG文件 174<br />3.9 XSL转换 175<br />第4章 网络 184<br />4.1 连接到服务器 184<br />4.1.1 使用telnet 184<br />4.1.2 用Java连接到服务器 186<br />4.1.3 套接字超时 188<br />4.1.4 因特网地址 189<br />4.2 实现服务器 190<br />4.2.1 服务器套接字 190<br />4.2.2 为多个客户端服务 193<br />4.2.3 半关闭 196<br />4.2.4 可中断套接字 197<br />4.3 获取Web数据 203<br />4.3.1 URL和URI 203<br />4.3.2 使用URLConnection获取信息 205<br />4.3.3 提交表单数据 211<br />4.4 HTTP客户端 219<br />4.4.1 HttpClient类 219<br />4.4.2 HttpRequest类和体发布器 220<br />4.4.3 HttpResponse接口和体处理器 220<br />4.4.4 异步处理 221<br />4.5 发送E-mail 226<br />第5章 数据库编程 229<br />5.1 JDBC的设计 229<br />5.1.1 JDBC驱动程序类型 230<br />5.1.2 JDBC的典型用法 231<br />5.2 结构化查询语言 231<br />5.3 JDBC配置 236<br />5.3.1 数据库URL 236<br />5.3.2 驱动程序JAR文件 237<br />5.3.3 启动数据库 237<br />5.3.4 注册驱动器类 238<br />5.3.5 连接到数据库 238<br />5.4 使用JDBC语句 241<br />5.4.1 执行SQL语句 241<br />5.4.2 管理连接、语句和结果集 244<br />5.4.3 分析SQL异常 244<br />5.4.4 组装数据库 246<br />5.5 执行查询操作 250<br />5.5.1 预备语句 250<br />5.5.2 读写LOB 256<br />5.5.3 SQL转义 257<br />5.5.4 多结果集 259<br />5.5.5 获取自动生成的键 260<br />5.6 可滚动和可更新的结果集 260<br />5.6.1 可滚动的结果集 260<br />5.6.2 可更新的结果集 262<br />5.7 行集 265<br />5.7.1 构建行集 266<br />5.7.2 被缓存的行集 266<br />5.8 元数据 269<br />5.9 事务 278<br />5.9.1 用JDBC对事务编程 278<br />5.9.2 保存点 279<br />5.9.3 批量更新 279<br />5.9.4 高级SQL类型 281<br />5.10 Web与企业应用中的连接管理 282<br />第6章 日期和时间API 284<br />6.1 时间线 284<br />6.2 本地日期 288<br />6.3 日期调整器 292<br />6.4 本地时间 293<br />6.5 时区时间 294<br />6.6 格式化和解析 298<br />6.7 与遗留代码的互操作 302<br />第7章 国际化 304<br />7.1 locale 304<br />7.1.1 为什么需要locale 304<br />7.1.2 指定locale 305<br />7.1.3 默认locale 307<br />7.1.4 显示名字 308<br />7.2 数字格式 309<br />7.2.1 格式化数字值 310<br />7.2.2 DecimalFormat类 313<br />7.2.3 货币 315<br />7.3 日期和时间 316<br />7.4 排序和规范化 319<br />7.5 消息格式化 324<br />7.5.1 格式化数字和日期 324<br />7.5.2 选择格式 325<br />7.6 文本输入和输出 327<br />7.6.1 文本文件 327<br />7.6.2 行结束符 328<br />7.6.3 控制台 328<br />7.6.4 日志文件 329<br />7.6.5 UTF-8字节顺序标志 329<br />7.6.6 源文件的字符编码 329<br />7.7 资源包 330<br />7.7.1 定位资源包 330<br />7.7.2 属性文件 331<br />7.7.3 包类 332<br />7.8 一个完整的例子 333<br />第8章 脚本、编译与注解处理 348<br />8.1 Java平台的脚本机制 348<br />8.1.1 获取脚本引擎 348<br />8.1.2 脚本计算与绑定 349<br />8.1.3 重定向输入和输出 351<br />8.1.4 调用脚本的函数和方法 352<br />8.1.5 编译脚本 353<br />8.1.6 示例:用脚本处理GUI事件 354<br />8.2 编译器API 358<br />8.2.1 调用编译器 358<br />8.2.2 发起编译任务 359<br />8.2.3 捕获诊断消息 359<br />8.2.4 从内存中读取源文件 360<br />8.2.5 将字节码写出到内存中 360<br />8.2.6 示例:动态Java代码生成 362<br />8.3 使用注解 367<br />8.3.1 注解简介 368<br />8.3.2 示例:注解事件处理器 369<br />8.4 注解语法 373<br />8.4.1 注解接口 373<br />8.4.2 注解 375<br />8.4.3 注解各类声明 376<br />8.4.4 注解类型用法 377<br />8.4.5 注解this 378<br />8.5 标准注解 379<br />8.5.1 用于编译的注解 380<br />8.5.2 元注解 381<br />8.6 源码级注解处理 383<br />8.6.1 注解处理器 383<br />8.6.2 语言模型API 384<br />8.6.3 使用注解来生成源码 384<br />8.7 字节码工程 387<br />8.7.1 修改类文件 387<br />8.7.2 在加载时修改字节码 392<br />第9章 Java平台模块系统 395<br />9.1 模块的概念 395<br />9.2 对模块命名 396<br />9.3 模块化的“Hello, World!”程序 397<br />9.4 对模块的需求 398<br />9.5 导出包 400<br />9.6 模块化的JAR 403<br />9.7 模块和反射式访问 404<br />9.8 自动模块 406<br />9.9 不具名模块 408<br />9.10 用于迁移的命令行标识 409<br />9.11 传递的需求和静态的需求 410<br />9.12 限定导出和开放 411<br />9.13 服务加载 412<br />9.14 操作模块的工具 414<br />第10章 安全 417<br />10.1 类加载器 417<br />10.1.1 类加载过程 418<br />10.1.2 类加载器的层次结构 418<br />10.1.3 将类加载器用作命名空间 420<br />10.1.4 编写你自己的类加载器 421<br />10.1.5 字节码校验 426<br />10.2 用户认证 429<br />10.2.1 JAAS框架 429<br />10.2.2 JAAS登录模块 432<br />10.3 数字签名 440<br />10.3.1 消息摘要 440<br />10.3.2 消息签名 443<br />10.3.3 校验签名 445<br />10.3.4 认证问题 447<br />10.3.5 证书签名 449<br />10.3.6 证书请求 450<br />10.3.7 代码签名 450<br />10.4 加密 452<br />10.4.1 对称密码 452<br />10.4.2 密钥生成 454<br />10.4.3 密码流 458<br />10.4.4 公共密钥密码 459<br />第11章 高级Swing和图形化编程 463<br />11.1 表格 463<br />11.1.1 一个简单表格 463<br />11.1.2 表格模型 466<br />11.1.3 对行和列的操作 469<br />11.1.4 单元格的绘制和编辑 483<br />11.2 树 493<br />11.2.1 简单的树 494<br />11.2.2 节点枚举 506<br />11.2.3 绘制节点 508<br />11.2.4 监听树事件 510<br />11.2.5 定制树模型 516<br />11.3 高级AWT 524<br />11.3.1 绘图操作流程 524<br />11.3.2 形状 526<br />11.3.3 区域 540<br />113.4 笔画 541<br />11.3.5 着色 548<br />11.3.6 坐标变换 549<br />11.3.7 剪切 554<br />11.3.8 透明与组合 555<br />11.4 像素图 563<br />11.4.1 图像的读取器和写入器 563<br />11.4.2 图像处理 571<br />11.5 打印 584<br />11.5.1 图形打印 584<br />11.5.2 打印多页文件 592<br />11.5.3 打印服务程序 600<br />11.5.4 流打印服务程序 602<br />11.5.5 打印属性 605<br />第12章 本地方法 612<br />12.1 从Java程序中调用C函数 613<br />12.2 数值参数与返回值 617<br />12.3 字符串参数 619<br />12.4 访问域 624<br />12.4.1 访问实例域 624<br />12.4.2 访问静态域 628<br />12.5 编码签名 628<br />12.6 调用Java方法 630<br />12.6.1 实例方法 630<br />12.6.2 静态方法 633<br />12.6.3 构造器 634<br />12.6.4 另一种方法调用 634<br />12.7 访问数组元素 636<br />12.8 错误处理 639<br />12.9 使用调用API 643<br />12.10 完整的示例:访问Windows<br />       注册表 648<br />12.10.1 Windows注册表概述 648<br />12.10.2 访问注册表的Java平台接口 649<br />12.10.3 以本地方法实现注册表<br />        访问函数 650<br />12.11 外部函数:展望未来 662

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网