Java语言导学(原书第5版) / 计算机科学丛书
¥95.00定价
作者: [美]沙伦·比奥卡·扎卡沃、索娅·坎南等著
译者:董笑菊、薛建新等 译;
出版时间:2015年6月
出版社:机械工业出版社
- 机械工业出版社
- 9787111503927
- 1版
- 45687
- 0044166590-8
- 压膜
- 16开
- 2015年6月
- 713
- 460
- 工学
- 软件工程
- TP312JA
- 计算机
- 研究生、本科
内容简介
本书主要介绍面向对象编程的概念、语言基础、类和对象、接口和继承、泛型、包、数字和字符串、异常、基本I/O、集合、并发、正则表达式等内容,涵盖了NIO.2、新的Fork/Join框架等Java SE 7的新特性,更新了泛型、Java Web Start和applet等相关内容。此外,附录还介绍了如何准备Java编程语言认证考试。本书由Oracle公司资深技术文档撰写人编写,并经过了Java开发团队细心审读,内容全面翔实、准确清晰,文字简洁易懂,可读性强。
目录
出版者的话
译者序
前言
第1 章 快速入门
1.1 关于Java 技术
1.1.1 Java 程序语言
1.1.2 Java 平台
1.1.3 Java 技术的功能
1.1.4 Java 技术的优势
1.2 “Hello World!”实例程序
1.2.1 用NetBeans IDE 开发“Hello World !”
1.2.2 在Microsoft Windows 中开发“Hello World !”
1.2.3 在Solaris 和Linux 中开发“Hello World !”
1.3 “Hello World !”实例程序剖析
1.3.1 源码注释
1.3.2 HelloWorldApp 类定义
1.3.3 main 方法
1.4 常见问题(及其解决方案)
1.4.1 编译器问题
1.4.2 运行时问题
1.5 问题和练习:快速入门
第2 章 面向对象的编程概念
2.1 对象
2.2 类
2.3 继承
2.4 接口
2.5 包
2.6 问题和练习:面向对象的编程概念
第3 章 语言基础
3.1 变量
3.1.1 命名
3.1.2 基本数据类型
3.1.3 数组
3.1.4 小结
3.1.5 问题和练习:变量
3.2 运算符
3.2.1 赋值运算符、算术运算符和一元运算符
3.2.2 等式运算符、关系运算符和条件运算符
3.2.3 位运算符和移位运算符
3.2.4 小结
3.2.5 问题和练习:运算符
3.3 表达式、语句和块
3.3.1 表达式
3.3.2 语句
3.3.3 块
3.3.4 问题和练习:表达式、语句和块
3.4 控制流语句
3.4.1 ifthen 语句和ifthenelse语句
3.4.2 switch 语句
3.4.3 while 语句和dowhile 语句
3.4.4 for 语句
3.4.5 分支语句
3.4.6 小结
3.4.7 问题和练习:控制流语句
第4 章 类和对象
4.1 类
4.1.1 声明类
4.1.2 声明成员变量
4.1.3 定义方法
4.1.4 构建构造器
4.1.5 将消息传给方法或构造器
4.2 对象
4.2.1 创建对象
4.2.2 使用对象
4.3 类的更多细节
4.3.1 从方法返回值
4.3.2 使用this 关键字
4.3.3 控制对类成员的访问
4.3.4 实例和类成员
4.3.5 初始化字段
4.3.6 小结
4.3.7 问题和练习:类
4.3.8 问题和练习:对象
4.4 嵌套类
4.4.1 为什么使用嵌套类
4.4.2 静态嵌套类
4.4.3 内部类
4.4.4 内部类实例
4.4.5 小结
4.4.6 问题和练习:嵌套类
4.5 枚举类型
4.5.1 问题和练习:枚举类型
4.6 注解
4.6.1 文档
4.6.2 编译器使用的注解
4.6.3 注解的处理
4.6.4 问题和练习:注解
第5 章 接口与继承
5.1 接口
5.1.1 Java 语言的接口
5.1.2 将接口用作API
5.1.3 接口和多重继承
5.1.4 定义接口
5.1.5 实现接口
5.1.6 将接口用作类型
5.1.7 重写接口
5.1.8 小结
5.1.9 问题和练习:接口
5.2 继承
5.2.1 Java 平台中类的层次结构
5.2.2 继承实例
5.2.3 子类能做什么
5.2.4 超类的私有成员
5.2.5 转换对象
5.2.6 覆盖和屏蔽方法
5.2.7 多态性
5.2.8 屏蔽字段
5.2.9 使用super 关键字
5.2.10 将对象用作超类
5.2.11 编写final 类和方法
5.2.12 抽象方法和类
5.2.13 小结
5.2.14 问题和练习:继承
第6 章 泛型
6.1 为什么用泛型
6.2 泛型类型
6.2.1 一个简单的Box 类
6.2.2 Box 类的泛型版本
6.2.3 类型参数命名约定
6.2.4 泛型类型的调用和实例化
6.2.5 钻石运算符
6.2.6 多个类型参数
6.2.7 参数化类型
6.2.8 原生类型
6.3 泛型方法.
6.4 受限类型形式参数
6.4.1 多重限制.
6.4.2 泛型方法和受限类型形式参数.
6.5 泛型、继承和子类型
6.5.1 泛型类和子类型
6.6 类型推导.
6.6.1 类型推导和泛型方法.
6.6.2 类型推导和泛型类的实例化
6.6.3 类型推导与泛型类和非泛型类的泛型构造函数
6.7 通配符.
6.7.1 上界通配符
6.7.2 无界通配符
6.7.3 下界通配符
6.7.4 通配符和子类型
6.7.5 通配符匹配和辅助方法.
6.7.6 通配符使用指南
6.8 类型擦除
6.8.1 泛型类型的擦除
6.8.2 泛型方法的擦除
6.8.3 类型擦除效果和桥方法
6.8.4 不可具体化类型
6.9 泛型的局限性
6.9.1 不能用基本数据类型实例化泛型类型
6.9.2 不能创建类型参数实例
6.9.3 不能声明类型为“类型参数”的静态字段
6.9.4 对参数化类型不能用类型转换或instanceof 运算符
6.9.5 不能创建参数化类型数组
6.9.6 不能创建、捕获或抛出参数化类型的对象
6.9.7 每次重载时其形式参数类型都被擦为相同的原生类型的方法不能重载
6.10 问题和练习:泛型
第7 章 程序包
7.1 程序包的创建
7.2 程序包的命名
7.2.1 命名约定
7.3 程序包成员的使用
7.3.1 用完全限定名指代程序包成员
7.3.2 导入包成员
7.3.3 导入整个程序包
7.3.4 包的表面层次结构
7.3.5 命名歧义性
7.3.6 静态import 语句
7.4 源文件和类文件的管理
7.4.1 设置CLASSPATH 系统变量
7.5 小结
7.6 问题和练习:创建和使用包
第8 章 数字和字符串
8.1 数字
8.1.1 Number 类
8.1.2 格式化数字打印输出
8.1.3 其他数学运算方法
8.1.4 自动装箱和拆箱
8.1.5 小结
8.1.6 问题和练习:数字
8.2 字符
8.2.1 转义字符
8.3 字符串
8.3.1 创建字符串
8.3.2 字符串长度
8.3.3 字符串连接
8.3.4 创建格式字符串
8.3.5 数字和字符串之间的转换
8.3.6 操作字符串中的字符
8.3.7 比较字符串和字符串的子串
8.3.8 StringBuilder 类
8.3.9 小结
8.3.10 问题和练习:字符和字符串
第9 章 异常
9.1 什么是异常
9.2 捕获或指明规定
9.2.1 三类异常
9.2.2 绕过捕获或指明
9.3 捕获和处理异常
9.3.1 try 块
9.3.2 catch 块
9.3.3 finally 块
9.3.4 trywithresources 语句
9.3.5 汇总
9.4 指明一个方法抛出的异常
9.5 如何抛出异常
9.5.1 throw 语句
9.5.2 Throwable 类及其子类
9.5.3 Error 类
9.5.4 Exception 类
9.5.5 链式异常
9.5.6 创建异常类
9.6 未检查异常:争议
9.7 异常的优点
9.7.1 优点1:把错误处理代码和“正规”代码分离开
9.7.2 优点2:根据调用栈上传错误
9.7.3 优点3:对错误类型进行分组和加以区分
9.8 小结
9.9 问题和练习:异常
第10 章 基本I/O 和NIO.2
10.1 I/O 流
10.1.1 字节流
10.1.2 字符流
10.1.3 缓冲流
10.1.4 扫描和格式化
10.1.5 命令行I/O
10.1.6 数据流
10.1.7 对象流
10.2 文件I/O(以NIO.2 为特征)
10.2.1 什么是路径(以及其他文件系统情况)
10.2.2 Path 类
10.2.3 文件操作
10.2.4 检查文件或目录
10.2.5 删除文件或目录
10.2.6 复制文件或目录
10.2.7 移动文件或目录
10.2.8 管理元数据(文件和文件存储属性)
10.2.9 读取、写入和创建文件
10.2.10 随机存取文件
10.2.11 创建和读取目录
10.2.12 符号链接或其他方式的链接
10.2.13 遍历文件树
10.2.14 查找文件
10.2.15 监视目录的变化
10.2.16 其他有用的方法
10.2.17 遗留文件的 I/O 代码
10.3 小结
10.4 问题和练习:基本I/O 和 NIO.2
第11 章 集合
11.1 集合简介
11.1.1 集合框架是什么
11.1.2 Java 集合框架的好处
11.2 接口
11.2.1 Collection 接口
11.2.2 遍历集合
11.2.3 Collection 接口的批量操作
11.2.4 Collection 接口的数组操作
11.2.5 Set 接口
11.2.6 List 接口
11.2.7 Queue 接口
11.2.8 Map 接口
11.2.9 对象排序
11.2.10 SortedSet 接口
11.2.11 SortedMap 接口
11.2.12 小结
11.2.13 问题和练习:接口
11.3 实现
11.3.1 Set 实现
11.3.2 List 实现
11.3.3 Map 实现
11.3.4 Queue 实现
11.3.5 封装实现
11.3.6 简单实现
11.3.7 小结
11.3.8 问题和练习:实现
11.4 算法
11.4.1 排序
11.4.2 混排
11.4.3 常规数据操作
11.4.4 查询
11.4.5 组合
11.4.6 查找极值
11.5 自定义集合实现
11.5.1 编写实现的原因
11.5.2 如何编写自定义实现
11.6 互操作性
11.6.1 兼容性
11.6.2 API 设计
第12 章 并发
12.1 进程和线程
12.1.1 进程
12.1.2 线程
12.2 线程对象
12.2.1 定义和启动一个线程
12.2.2 使用sleep 方法暂停执行
12.2.3 中断
12.2.4 联合
12.2.5 SimpleThreads 实例
12.3 同步
12.3.1 线程冲突
12.3.2 内存一致性错误
12.3.3 同步方法
12.3.4 内部锁和同步
12.3.5 原子访问
12.4 活性
12.4.1 死锁
12.4.2 饥饿和活锁
12.5 保护块
12.6 不可变对象
12.6.1 同步类实例
12.6.2 定义不可变对象的一种策略
12.7 高级并发对象
12.7.1 锁对象
12.7.2 执行器
12.7.3 并发集合
12.7.4 原子变量
12.7.5 并发随机数
12.8 问题和练习:并发
第13 章 正则表达式
13.1 简介
13.1.1 什么是正则表达式
13.1.2 包中的正则表达式如何表示
13.2 测试工具
13.3 字符串文字
13.3.1 元字符
13.4 字符类
13.4.1 简单类
13.5 预定义字符类
13.6 量词
13.6.1 零长度匹配
13.6.2 捕捉组和拥有量词的字符类
13.6.3 贪婪型、勉强型和占有型量词之间的区别
13.7 捕捉组
13.7.1 编号
13.7.2 反向引用
13.8 边界匹配器
13.9 模式类方法
13.9.1 使用标记创建模式
13.9.2 嵌套标记表达式
13.9.3 使用matches (String,CharSequence) 方法
13.9.4 使用split (String) 方法
13.9.5 其他实用方法
13.9.6 java.lang.String 中模式方法的等价
13.10 匹配类方法
13.10.1 索引方法
13.10.2 学习方法
13.10.3 替换方法
13.10.4 使用start 和end 方法
13.10.5 使用matches 和lookingAt方法
13.10.6 使用replaceFirst (String)和replaceAll (String)
13.10.7 使用appendReplacement(StringBuffer, String) 和appendTail (StringBuffer)
13.10.8 Matcher 方法在java.lang.String中的等价
13.11 模式语法异常类方法
13.12 Unicode 支持
13.12.1 匹配特定代码点
13.12.2 Unicode 字符属性
13.13 附加资源
13.14 问题和练习:正则表达式
第14 章 平台环境
14.1 配置工具
14.1.1 属性
14.1.2 命令行参数
14.1.3 环境变量
14.1.4 其他配置工具
14.2 系统工具
14.2.1 命令行I/O 对象
14.2.2 系统属性
14.2.3 安全管理器
14.2.4 系统的其他方法
14.3 路径和类路径
14.3.1 更新PATH 环境变量(Microsoft Windows)
14.3.2 更新PATH 变量(Solaris 和Linux)
14.3.3 检查CLASSPATH 变量(所有平台)
14.4 问题和练习:平台环境
第15 章 JAR 文件
15.1 JAR 文件使用入门
15.1.1 创建JAR 文件
15.1.2 查看JAR 文件内容
15.1.3 抽取JAR 文件内容
15.1.4 更新JAR 文件
15.1.5 运行打包为JAR 的软件
15.2 清单文件使用入门
15.2.1 理解默认的清单文件
15.2.2 修改清单文件
15.2.3 设置应用程序的入口点
15.2.4 将类文件加入JAR 文件的类路径
15.2.5 设置包版本信息
15.2.6 用JAR 文件封装包
15.2.7 封装JAR 文件
15.3 JAR 文件的签名和验证
15.3.1 理解签名和验证
15.3.2 对JAR 文件签名
15.3.3 验证签名的JAR 文件
15.4 使用JAR 相关API
15.4.1 实例:JarRunner 应用
15.5 问题:JAR 文件
第16 章 Java Web Start
16.1 开发Java Web Start 应用程序
16.1.1 创建顶层JPanel 类
16.1.2 创建应用程序
16.1.3 从最后部署机制中分离出核心方法的好处
16.1.4 获取资源
16.2 部署Java Web Start 应用
16.2.1 设置Web 服务器
16.3 显示自定义的加载进度指示器
16.3.1 开发自定义的加载进度指示器
16.3.2 为Java Web Start 应用指定自定义的加载进度指示器
16.4 运行Java Web Start 应用
16.4.1 通过浏览器运行Java Web Start 应用
16.4.2 通过Java Cache Viewer 运行Java Web Start 应用
16.4.3 从桌面运行Java Web Start 应用
16.5 Java Web Start 与安全
16.5.1 动态下载HTTPS 认证
16.6 Java Web Start 常见问题
16.7 问题和练习:Java Web Start
第17 章 applet
17.1 开始使用applet
17.1.1 定义Applet 类的子类
17.1.2 Milestones 方法
17.1.3 applet 的生命周期
17.1.4 applet 执行环境
17.1.5 开发applet
17.1.6 部署applet
17.2 applet 更多功能
17.2.1 查找和加载数据文件
17.2.2 定义和使用applet 参数
17.2.3 显示简短的状态字符串
17.2.4 在浏览器中显示文档
17.2.5 从applet 调用JavaScript代码
17.2.6 从JavaScript 代码中调用applet 方法
17.2.7 通过事件句柄处理初始化状态
17.2.8 操纵applet 网页的DOM
17.3 显示自定义的加载进度指示器
17.3.1 开发自定义的加载进度指示器
17.3.2 为applet 指定加载进度指示器
17.3.3 将加载进度指示器和applet 用户界面结合
17.3.4 将诊断写入标准输出和错误流
17.3.5 开发可拖动的applet
17.3.6 和其他applet 交互
17.3.7 与服务器端应用交互
17.3.8 applet 能做什么和不能做什么
17.4 applet 常见问题及解决方案
17.5 问题和练习:applet
第18 章 Java 富互联网应用系统
18.1 设置可信参数和安全属性
18.1.1 系统属性
18.2 JNLP API
18.2.1 通过JNLP API 获取客户端
18.3 cookie
18.3.1 cookie 的类型
18.3.2 RIA 中的cookie 支持
18.3.3 获取cookie
18.4 自定义加载体验
18.5 RIA 中的安全
18.6 问题和练习:Java 富互联网应用系统
第19 章 深入理解部署
19.1 部署工具
19.1.1 部署工具脚本所在位置
19.1.2 部署applet
19.1.3 部署Java Web Start 应用
19.1.4 检查客户端的JRE 软件版本
19.2 Java 网络加载协议
19.2.1 JNLP 文件结构
19.3 部署的最佳实践
19.3.1 减少下载时间
19.3.2 避免不必要的更新检查
19.3.3 只有必要时才签名JAR文件
19.3.4 确保JRE 软件存在
19.4 问题和练习:深入理解部署
附录 Java 程序语言认证考试复习大纲
译者序
前言
第1 章 快速入门
1.1 关于Java 技术
1.1.1 Java 程序语言
1.1.2 Java 平台
1.1.3 Java 技术的功能
1.1.4 Java 技术的优势
1.2 “Hello World!”实例程序
1.2.1 用NetBeans IDE 开发“Hello World !”
1.2.2 在Microsoft Windows 中开发“Hello World !”
1.2.3 在Solaris 和Linux 中开发“Hello World !”
1.3 “Hello World !”实例程序剖析
1.3.1 源码注释
1.3.2 HelloWorldApp 类定义
1.3.3 main 方法
1.4 常见问题(及其解决方案)
1.4.1 编译器问题
1.4.2 运行时问题
1.5 问题和练习:快速入门
第2 章 面向对象的编程概念
2.1 对象
2.2 类
2.3 继承
2.4 接口
2.5 包
2.6 问题和练习:面向对象的编程概念
第3 章 语言基础
3.1 变量
3.1.1 命名
3.1.2 基本数据类型
3.1.3 数组
3.1.4 小结
3.1.5 问题和练习:变量
3.2 运算符
3.2.1 赋值运算符、算术运算符和一元运算符
3.2.2 等式运算符、关系运算符和条件运算符
3.2.3 位运算符和移位运算符
3.2.4 小结
3.2.5 问题和练习:运算符
3.3 表达式、语句和块
3.3.1 表达式
3.3.2 语句
3.3.3 块
3.3.4 问题和练习:表达式、语句和块
3.4 控制流语句
3.4.1 ifthen 语句和ifthenelse语句
3.4.2 switch 语句
3.4.3 while 语句和dowhile 语句
3.4.4 for 语句
3.4.5 分支语句
3.4.6 小结
3.4.7 问题和练习:控制流语句
第4 章 类和对象
4.1 类
4.1.1 声明类
4.1.2 声明成员变量
4.1.3 定义方法
4.1.4 构建构造器
4.1.5 将消息传给方法或构造器
4.2 对象
4.2.1 创建对象
4.2.2 使用对象
4.3 类的更多细节
4.3.1 从方法返回值
4.3.2 使用this 关键字
4.3.3 控制对类成员的访问
4.3.4 实例和类成员
4.3.5 初始化字段
4.3.6 小结
4.3.7 问题和练习:类
4.3.8 问题和练习:对象
4.4 嵌套类
4.4.1 为什么使用嵌套类
4.4.2 静态嵌套类
4.4.3 内部类
4.4.4 内部类实例
4.4.5 小结
4.4.6 问题和练习:嵌套类
4.5 枚举类型
4.5.1 问题和练习:枚举类型
4.6 注解
4.6.1 文档
4.6.2 编译器使用的注解
4.6.3 注解的处理
4.6.4 问题和练习:注解
第5 章 接口与继承
5.1 接口
5.1.1 Java 语言的接口
5.1.2 将接口用作API
5.1.3 接口和多重继承
5.1.4 定义接口
5.1.5 实现接口
5.1.6 将接口用作类型
5.1.7 重写接口
5.1.8 小结
5.1.9 问题和练习:接口
5.2 继承
5.2.1 Java 平台中类的层次结构
5.2.2 继承实例
5.2.3 子类能做什么
5.2.4 超类的私有成员
5.2.5 转换对象
5.2.6 覆盖和屏蔽方法
5.2.7 多态性
5.2.8 屏蔽字段
5.2.9 使用super 关键字
5.2.10 将对象用作超类
5.2.11 编写final 类和方法
5.2.12 抽象方法和类
5.2.13 小结
5.2.14 问题和练习:继承
第6 章 泛型
6.1 为什么用泛型
6.2 泛型类型
6.2.1 一个简单的Box 类
6.2.2 Box 类的泛型版本
6.2.3 类型参数命名约定
6.2.4 泛型类型的调用和实例化
6.2.5 钻石运算符
6.2.6 多个类型参数
6.2.7 参数化类型
6.2.8 原生类型
6.3 泛型方法.
6.4 受限类型形式参数
6.4.1 多重限制.
6.4.2 泛型方法和受限类型形式参数.
6.5 泛型、继承和子类型
6.5.1 泛型类和子类型
6.6 类型推导.
6.6.1 类型推导和泛型方法.
6.6.2 类型推导和泛型类的实例化
6.6.3 类型推导与泛型类和非泛型类的泛型构造函数
6.7 通配符.
6.7.1 上界通配符
6.7.2 无界通配符
6.7.3 下界通配符
6.7.4 通配符和子类型
6.7.5 通配符匹配和辅助方法.
6.7.6 通配符使用指南
6.8 类型擦除
6.8.1 泛型类型的擦除
6.8.2 泛型方法的擦除
6.8.3 类型擦除效果和桥方法
6.8.4 不可具体化类型
6.9 泛型的局限性
6.9.1 不能用基本数据类型实例化泛型类型
6.9.2 不能创建类型参数实例
6.9.3 不能声明类型为“类型参数”的静态字段
6.9.4 对参数化类型不能用类型转换或instanceof 运算符
6.9.5 不能创建参数化类型数组
6.9.6 不能创建、捕获或抛出参数化类型的对象
6.9.7 每次重载时其形式参数类型都被擦为相同的原生类型的方法不能重载
6.10 问题和练习:泛型
第7 章 程序包
7.1 程序包的创建
7.2 程序包的命名
7.2.1 命名约定
7.3 程序包成员的使用
7.3.1 用完全限定名指代程序包成员
7.3.2 导入包成员
7.3.3 导入整个程序包
7.3.4 包的表面层次结构
7.3.5 命名歧义性
7.3.6 静态import 语句
7.4 源文件和类文件的管理
7.4.1 设置CLASSPATH 系统变量
7.5 小结
7.6 问题和练习:创建和使用包
第8 章 数字和字符串
8.1 数字
8.1.1 Number 类
8.1.2 格式化数字打印输出
8.1.3 其他数学运算方法
8.1.4 自动装箱和拆箱
8.1.5 小结
8.1.6 问题和练习:数字
8.2 字符
8.2.1 转义字符
8.3 字符串
8.3.1 创建字符串
8.3.2 字符串长度
8.3.3 字符串连接
8.3.4 创建格式字符串
8.3.5 数字和字符串之间的转换
8.3.6 操作字符串中的字符
8.3.7 比较字符串和字符串的子串
8.3.8 StringBuilder 类
8.3.9 小结
8.3.10 问题和练习:字符和字符串
第9 章 异常
9.1 什么是异常
9.2 捕获或指明规定
9.2.1 三类异常
9.2.2 绕过捕获或指明
9.3 捕获和处理异常
9.3.1 try 块
9.3.2 catch 块
9.3.3 finally 块
9.3.4 trywithresources 语句
9.3.5 汇总
9.4 指明一个方法抛出的异常
9.5 如何抛出异常
9.5.1 throw 语句
9.5.2 Throwable 类及其子类
9.5.3 Error 类
9.5.4 Exception 类
9.5.5 链式异常
9.5.6 创建异常类
9.6 未检查异常:争议
9.7 异常的优点
9.7.1 优点1:把错误处理代码和“正规”代码分离开
9.7.2 优点2:根据调用栈上传错误
9.7.3 优点3:对错误类型进行分组和加以区分
9.8 小结
9.9 问题和练习:异常
第10 章 基本I/O 和NIO.2
10.1 I/O 流
10.1.1 字节流
10.1.2 字符流
10.1.3 缓冲流
10.1.4 扫描和格式化
10.1.5 命令行I/O
10.1.6 数据流
10.1.7 对象流
10.2 文件I/O(以NIO.2 为特征)
10.2.1 什么是路径(以及其他文件系统情况)
10.2.2 Path 类
10.2.3 文件操作
10.2.4 检查文件或目录
10.2.5 删除文件或目录
10.2.6 复制文件或目录
10.2.7 移动文件或目录
10.2.8 管理元数据(文件和文件存储属性)
10.2.9 读取、写入和创建文件
10.2.10 随机存取文件
10.2.11 创建和读取目录
10.2.12 符号链接或其他方式的链接
10.2.13 遍历文件树
10.2.14 查找文件
10.2.15 监视目录的变化
10.2.16 其他有用的方法
10.2.17 遗留文件的 I/O 代码
10.3 小结
10.4 问题和练习:基本I/O 和 NIO.2
第11 章 集合
11.1 集合简介
11.1.1 集合框架是什么
11.1.2 Java 集合框架的好处
11.2 接口
11.2.1 Collection 接口
11.2.2 遍历集合
11.2.3 Collection 接口的批量操作
11.2.4 Collection 接口的数组操作
11.2.5 Set 接口
11.2.6 List 接口
11.2.7 Queue 接口
11.2.8 Map 接口
11.2.9 对象排序
11.2.10 SortedSet 接口
11.2.11 SortedMap 接口
11.2.12 小结
11.2.13 问题和练习:接口
11.3 实现
11.3.1 Set 实现
11.3.2 List 实现
11.3.3 Map 实现
11.3.4 Queue 实现
11.3.5 封装实现
11.3.6 简单实现
11.3.7 小结
11.3.8 问题和练习:实现
11.4 算法
11.4.1 排序
11.4.2 混排
11.4.3 常规数据操作
11.4.4 查询
11.4.5 组合
11.4.6 查找极值
11.5 自定义集合实现
11.5.1 编写实现的原因
11.5.2 如何编写自定义实现
11.6 互操作性
11.6.1 兼容性
11.6.2 API 设计
第12 章 并发
12.1 进程和线程
12.1.1 进程
12.1.2 线程
12.2 线程对象
12.2.1 定义和启动一个线程
12.2.2 使用sleep 方法暂停执行
12.2.3 中断
12.2.4 联合
12.2.5 SimpleThreads 实例
12.3 同步
12.3.1 线程冲突
12.3.2 内存一致性错误
12.3.3 同步方法
12.3.4 内部锁和同步
12.3.5 原子访问
12.4 活性
12.4.1 死锁
12.4.2 饥饿和活锁
12.5 保护块
12.6 不可变对象
12.6.1 同步类实例
12.6.2 定义不可变对象的一种策略
12.7 高级并发对象
12.7.1 锁对象
12.7.2 执行器
12.7.3 并发集合
12.7.4 原子变量
12.7.5 并发随机数
12.8 问题和练习:并发
第13 章 正则表达式
13.1 简介
13.1.1 什么是正则表达式
13.1.2 包中的正则表达式如何表示
13.2 测试工具
13.3 字符串文字
13.3.1 元字符
13.4 字符类
13.4.1 简单类
13.5 预定义字符类
13.6 量词
13.6.1 零长度匹配
13.6.2 捕捉组和拥有量词的字符类
13.6.3 贪婪型、勉强型和占有型量词之间的区别
13.7 捕捉组
13.7.1 编号
13.7.2 反向引用
13.8 边界匹配器
13.9 模式类方法
13.9.1 使用标记创建模式
13.9.2 嵌套标记表达式
13.9.3 使用matches (String,CharSequence) 方法
13.9.4 使用split (String) 方法
13.9.5 其他实用方法
13.9.6 java.lang.String 中模式方法的等价
13.10 匹配类方法
13.10.1 索引方法
13.10.2 学习方法
13.10.3 替换方法
13.10.4 使用start 和end 方法
13.10.5 使用matches 和lookingAt方法
13.10.6 使用replaceFirst (String)和replaceAll (String)
13.10.7 使用appendReplacement(StringBuffer, String) 和appendTail (StringBuffer)
13.10.8 Matcher 方法在java.lang.String中的等价
13.11 模式语法异常类方法
13.12 Unicode 支持
13.12.1 匹配特定代码点
13.12.2 Unicode 字符属性
13.13 附加资源
13.14 问题和练习:正则表达式
第14 章 平台环境
14.1 配置工具
14.1.1 属性
14.1.2 命令行参数
14.1.3 环境变量
14.1.4 其他配置工具
14.2 系统工具
14.2.1 命令行I/O 对象
14.2.2 系统属性
14.2.3 安全管理器
14.2.4 系统的其他方法
14.3 路径和类路径
14.3.1 更新PATH 环境变量(Microsoft Windows)
14.3.2 更新PATH 变量(Solaris 和Linux)
14.3.3 检查CLASSPATH 变量(所有平台)
14.4 问题和练习:平台环境
第15 章 JAR 文件
15.1 JAR 文件使用入门
15.1.1 创建JAR 文件
15.1.2 查看JAR 文件内容
15.1.3 抽取JAR 文件内容
15.1.4 更新JAR 文件
15.1.5 运行打包为JAR 的软件
15.2 清单文件使用入门
15.2.1 理解默认的清单文件
15.2.2 修改清单文件
15.2.3 设置应用程序的入口点
15.2.4 将类文件加入JAR 文件的类路径
15.2.5 设置包版本信息
15.2.6 用JAR 文件封装包
15.2.7 封装JAR 文件
15.3 JAR 文件的签名和验证
15.3.1 理解签名和验证
15.3.2 对JAR 文件签名
15.3.3 验证签名的JAR 文件
15.4 使用JAR 相关API
15.4.1 实例:JarRunner 应用
15.5 问题:JAR 文件
第16 章 Java Web Start
16.1 开发Java Web Start 应用程序
16.1.1 创建顶层JPanel 类
16.1.2 创建应用程序
16.1.3 从最后部署机制中分离出核心方法的好处
16.1.4 获取资源
16.2 部署Java Web Start 应用
16.2.1 设置Web 服务器
16.3 显示自定义的加载进度指示器
16.3.1 开发自定义的加载进度指示器
16.3.2 为Java Web Start 应用指定自定义的加载进度指示器
16.4 运行Java Web Start 应用
16.4.1 通过浏览器运行Java Web Start 应用
16.4.2 通过Java Cache Viewer 运行Java Web Start 应用
16.4.3 从桌面运行Java Web Start 应用
16.5 Java Web Start 与安全
16.5.1 动态下载HTTPS 认证
16.6 Java Web Start 常见问题
16.7 问题和练习:Java Web Start
第17 章 applet
17.1 开始使用applet
17.1.1 定义Applet 类的子类
17.1.2 Milestones 方法
17.1.3 applet 的生命周期
17.1.4 applet 执行环境
17.1.5 开发applet
17.1.6 部署applet
17.2 applet 更多功能
17.2.1 查找和加载数据文件
17.2.2 定义和使用applet 参数
17.2.3 显示简短的状态字符串
17.2.4 在浏览器中显示文档
17.2.5 从applet 调用JavaScript代码
17.2.6 从JavaScript 代码中调用applet 方法
17.2.7 通过事件句柄处理初始化状态
17.2.8 操纵applet 网页的DOM
17.3 显示自定义的加载进度指示器
17.3.1 开发自定义的加载进度指示器
17.3.2 为applet 指定加载进度指示器
17.3.3 将加载进度指示器和applet 用户界面结合
17.3.4 将诊断写入标准输出和错误流
17.3.5 开发可拖动的applet
17.3.6 和其他applet 交互
17.3.7 与服务器端应用交互
17.3.8 applet 能做什么和不能做什么
17.4 applet 常见问题及解决方案
17.5 问题和练习:applet
第18 章 Java 富互联网应用系统
18.1 设置可信参数和安全属性
18.1.1 系统属性
18.2 JNLP API
18.2.1 通过JNLP API 获取客户端
18.3 cookie
18.3.1 cookie 的类型
18.3.2 RIA 中的cookie 支持
18.3.3 获取cookie
18.4 自定义加载体验
18.5 RIA 中的安全
18.6 问题和练习:Java 富互联网应用系统
第19 章 深入理解部署
19.1 部署工具
19.1.1 部署工具脚本所在位置
19.1.2 部署applet
19.1.3 部署Java Web Start 应用
19.1.4 检查客户端的JRE 软件版本
19.2 Java 网络加载协议
19.2.1 JNLP 文件结构
19.3 部署的最佳实践
19.3.1 减少下载时间
19.3.2 避免不必要的更新检查
19.3.3 只有必要时才签名JAR文件
19.3.4 确保JRE 软件存在
19.4 问题和练习:深入理解部署
附录 Java 程序语言认证考试复习大纲