深入理解Java 7 —核心技术与最佳实践作者:成富 著出版时间:2012内容简介 本书是学习Java7新功能和新特性以及深入理解Java核心技术的最佳选择之一。经过近6年的等待,Java迎来了它的又一个历史性的版本—Java7。Java 7在提高开发人员的生产效率、平台性能和模块方向上又迈进了一步,变得更加强大和灵活。本书不仅对Java7的所有重要更新进行了全面的解读,而且还对Java平台的核心技术的底层实现进行了深入探讨,包含大量最佳实践。全书的主要内容可分为三大部分:第一部分是1~6章,全面阐释Java7在语法、JVM、类库和API等方面的所有重要新功能和新特性,掌握这部分内容有助于大幅度提升编码效率和提高代码质量;第二部分是7~13章,对JVM、Java源代码和字节代码操作、类加载器、对象生命周期、多线程、并发编程、泛型、安全等Java平台的核心技术进行了深入解析,掌握这部分内容有助于深入理解Java的底层原理;第三部分为第14章,是对Java8的展望,简要介绍了Java 8中将要增加的新特性。目录前 言Java的挑战与展望第1章 Java 7语法新特性 / 11.1 Coin项目介绍 / 11.2 在switch语句中使用字符串 / 21.2.1 基本用法 / 21.2.2 实现原理 / 31.2.3 枚举类型 / 51.3 数值字面量的改进 / 51.3.1 二进制整数字面量 / 61.3.2 在数值字面量中使用下划线 / 61.4 优化的异常处理 / 71.4.1 异常的基础知识 / 71.4.2 创建自己的异常 / 81.4.3 处理异常 / 121.4.4 Java 7的异常处理新特性 / 141.5 try-with-resources语句 / 171.6 优化变长参数的方法调用 / 191.7 小结 / 21第2章 Java语言的动态性 / 222.1 脚本语言支持API / 222.1.1 脚本引擎 / 232.1.2 语言绑定 / 242.1.3 脚本执行上下文 / 252.1.4 脚本的编译 / 272.1.5 方法调用 / 282.1.6 使用案例 / 292.2 反射API / 312.2.1 获取构造方法 / 322.2.2 获取域 / 342.2.3 获取方法 / 342.2.4 操作数组 / 352.2.5 访问权限与异常处理 / 362.3 动态代理 / 362.3.1 基本使用方式 / 362.3.2 使用案例 / 402.4 动态语言支持 / 422.4.1 Java语言与Java虚拟机 / 432.4.2 方法句柄 / 442.4.3 invokedynamic指令 / 662.5 小结 / 73第3章 Java I/O / 753.1 流 / 753.1.1 基本输入流 / 763.1.2 基本输出流 / 773.1.3 输入流的复用 / 783.1.4 过滤输入输出流 / 803.1.5 其他输入输出流 / 813.1.6 字符流 / 813.2 缓冲区 / 823.2.1 基本用法 / 833.2.2 字节缓冲区 / 843.2.3 缓冲区视图 / 863.3 通道 / 873.3.1 文件通道 / 883.3.2 套接字通道 / 933.4 NIO.2 / 983.4.1 文件系统访问 / 983.4.2 zip/jar文件系统 / 1063.4.3 异步I/O通道 / 1083.4.4 套接字通道绑定与配置 / 1113.4.5 IP组播通道 / 1113.5 使用案例 / 1133.6 小结 / 115第4章 国际化与本地化 / 1174.1 国际化概述 / 1174.2 Unicode / 1184.2.1 Unicode编码格式 / 1194.2.2 其他字符集 / 1244.2.3 Java与Unicode / 1244.3 Java中的编码实践 / 1254.3.1 Java NIO中的编码器和解码器 / 1264.3.2 乱码问题详解 / 1304.4 区域设置 / 1334.4.1 IETF BCP 47 / 1344.4.2 资源包 / 1354.4.3 日期和时间 / 1434.4.4 数字和货币 / 1444.4.5 消息文本 / 1464.4.6 默认区域设置的类别 / 1484.4.7 字符串比较 / 1484.5 国际化与本地化基本实践 / 1494.6 小结 / 152第5章 图形用户界面 / 1535.1 Java图形用户界面概述 / 1535.2 AWT / 1565.2.1 重要组件类 / 1565.2.2 任意形状的窗口 / 1575.2.3 半透明窗口 / 1585.2.4 组件混合 / 1595.3 Swing / 1595.3.1 重要组件类 / 1595.3.2 JLayer组件和LayerUI类 / 1615.4 事件处理与线程安全性 / 1635.4.1 事件处理 / 1635.4.2 事件分发线程 / 1655.4.3 SwingWorker类 / 1675.4.4 SecondaryLoop接口 / 1695.5 界面绘制 / 1705.5.1 AWT中的界面绘制 / 1705.5.2 Swing中的绘制 / 1715.6 可插拔式外观样式 / 1725.7 JavaFX / 1755.7.1 场景图 / 1755.7.2 变换 / 1775.7.3 动画效果 / 1775.7.4 FXML / 1795.7.5 CSS外观描述 / 1815.7.6 Web引擎与网页显示 / 1825.8 使用案例 / 1835.9 小结 / 185第6章 Java 7其他重要更新 / 1866.1 关系数据库访问 / 1866.1.1 使用try-with-resources语句 / 1866.1.2 数据库查询的默认模式 / 1876.1.3 数据库连接超时时间与终止 / 1886.1.4 语句自动关闭 / 1896.1.5 RowSet实现提供者 / 1906.2 java.lang包的更新 / 1916.2.1 基本类型的包装类 / 1916.2.2 进程使用 / 1926.2.3 Thread类的更新 / 1946.3 Java实用工具类 / 1956.3.1 对象操作 / 1956.3.2 正则表达式 / 1976.3.3 压缩文件处理 / 2006.4 JavaBeans组件 / 2016.4.1 获取组件信息 / 2016.4.2 执行语句和表达式 / 2026.4.3 持久化 / 2026.5 小结 / 203第7章 Java虚拟机 / 2057.1 虚拟机基本概念 / 2057.2 内存管理 / 2067.3 引用类型 / 2087.3.1 强引用 / 2097.3.2 引用类型基本概念 / 2117.3.3 软引用 / 2137.3.4 弱引用 / 2157.3.5 幽灵引用 / 2177.3.6 引用队列 / 2207.4 Java本地接口 / 2217.4.1 JNI基本用法 / 2217.4.2 Java程序中集成C/C++代码 / 2257.4.3 在C/C++程序中启动Java虚拟机 / 2277.5 HotSpot虚拟机 / 2287.5.1 字节代码执行 / 2297.5.2 垃圾回收 / 2297.5.3 启动参数 / 2357.5.4 分析工具 / 2367.5.5 Java虚拟机工具接口 / 2417.6 小结 / 244第8章 Java源代码和字节代码操作 / 2458.1 Java字节代码格式 / 2458.1.1 基本格式 / 2468.1.2 常量池的结构 / 2488.1.3 属性 / 2498.2 动态编译Java源代码 / 2498.2.1 使用javac工具 / 2508.2.2 Java编译器API / 2518.2.3 使用Eclipse JDT编译器 / 2548.3 字节代码增强 / 2578.3.1 使用ASM / 2588.3.2 增强代理 / 2678.4 注解 / 2718.4.1 注解类型 / 2718.4.2 创建注解类型 / 2738.4.3 使用注解类型 / 2748.4.4 处理注解 / 2758.5 使用案例 / 2848.6 小结 / 286第9章 Java类加载器 / 2879.1 类加载器概述 / 2879.2 类加载器的层次结构与代理模式 / 2889.3 创建类加载器 / 2909.4 类加载器的隔离作用 / 2949.5 线程上下文类加载器 / 2969.6 Class.forName方法 / 2989.7 加载资源 / 2999.8 Web应用中的类加载器 / 3019.9 OSGi中的类加载器 / 3039.9.1 OSGi基本的类加载器机制 / 3039.9.2 Equinox框架的类加载实现机制 / 3039.9.3 Equinox框架嵌入到Web容器中 / 3069.10 小结 / 308第10章 对象生命周期 / 30910.1 Java类的链接 / 30910.2 Java类的初始化 / 31110.3 对象的创建与初始化 / 31210.4 对象终止 / 31410.5 对象复制 / 31810.6 对象序列化 / 322 10.6.1 默认的对象序列化 / 324 10.6.2 自定义对象序列化 / 326 10.6.3 对象替换 / 329 10.6.4 版本更新 / 330 10.6.5 安全性 / 331 10.6.6 使用Externalizable接口 / 33210.7 小结 / 334第11章 多线程与并发编程实践 / 33511.1 多线程 / 335 11.1.1 可见性 / 336 11.1.2 Java内存模型 / 339 11.1.3 volatile关键词 / 340 11.1.4 final关键词 / 341 11.1.5 原子操作 / 34211.2 基本线程同步方式 / 343 11.2.1 synchronized关键词 / 343 11.2.2 Object类的wait、notify和notifyAll方法 / 34411.3 使用Thread类 / 346 11.3.1 线程状态 / 346 11.3.2 线程中断 / 347 11.3.3 线程等待、睡眠和让步 / 34811.4 非阻塞方式 / 34911.5 高级实用工具 / 352 11.5.1 高级同步机制 / 352 11.5.2 底层同步器 / 355 11.5.3 高级同步对象 / 357 11.5.4 数据结构 / 363 11.5.5 任务执行 / 36511.6 Java SE 7新特性 / 368 11.6.1 轻量级任务执行框架fork/join / 368 11.6.2 多阶段线程同步工具 / 37011.7 ThreadLocal类 / 37311.8 小结 / 374第12章 Java泛型 / 37512.1 泛型基本概念 / 37512.2 类型擦除 / 37812.3 上界和下界 / 38212.4 通配符 / 38412.5 泛型与数组 / 38512.6 类型系统 / 38812.7 覆写与重载 / 391 12.7.1 覆写对方法类型签名的要求 / 391 12.7.2 覆写对返回值类型的要求 / 395 12.7.3 覆写对异常声明的要求 / 396 12.7.4 重载 / 39612.8 类型推断和<>操作符 / 39712.9 泛型与反射API / 40012.10 使用案例 / 40212.11 小结 / 403第13章 Java安全 / 40513.1 Java安全概述 / 40513.2 用户认证 / 406 13.2.1 主体、身份标识与凭证 / 406 13.2.2 登录 / 40713.3 权限控制 / 415 13.3.1 权限、策略与保护域 / 416 13.3.2 访问控制权限 / 418 13.3.3 特权动作 / 420 13.3.4 访问控制上下文 / 421 13.3.5 守卫对象 / 42313.4 加密与解密、报文摘要和数字签名 / 424 13.4.1 Java密码框架 / 424 13.4.2 加密与解密 / 425 13.4.3 报文摘要 / 427 13.4.4 数字签名 / 42813.5 安全套接字连接 / 430 13.5.1 SSL协议 / 431 13.5.2 HTTPS / 43213.6 使用案例 / 43413.7 小结 / 437第14章 超越Java 7 / 43814.1 lambda表达式 / 438 14.1.1 函数式接口 / 439 14.1.2 lambda表达式的语法 / 440 14.1.3 目标类型 / 440 14.1.4 词法作用域 / 441 14.1.5 方法引用 / 442 14.1.6 接口的默认方法 / 44314.2 Java平台模块化 / 44414.3 Java SE 8的其他更新 / 44514.4 小结 / 445附录A OpenJDK / 446附录B Java简史 / 448 上一篇: 计算机科学丛书 数据结构与抽象 Java语言描述 原书第四版 下一篇: Java 8编程官方参考教程 第九版