第1章 Java基础
1.1 Java的起源
1.1.1 Java与C和C++的联系
1.2 Java对于Internet的贡献
1.2.1 Java applet和应用程序
1.2.2 安全性
1.2.3 可移植性
1.3 Java魔术:bytecode
1.4 Java的专门用语
1.5 面向对象的编程
1.5.1 封装
1.5.2 多态性
1.5.3 继承
1.6 获得JDK
1.7 第一个示例程序
1.7.1 输入程序
1.7.2 编译程序
1.7.3 逐行解释第一个示例程序
1.8 处理语法错误
1.9 第二个示例程序
1.10 另一种数据类型
项目1-1 将加仑转换为升
1.11 两个控制语句
1.11.1 if语句
1.11.2 for循环
1.12 使用代码块
1.13 分号和定位
1.14 缩排习惯
项目1-2 改进加仑转换为升的程序
1.15 Java关键字
1.16 Java标识符
1.17 Java类库
1.18 小测验
第2章 介绍数据类型和运算符
2.1 数据类型的重要性
2.2 Java的简单类型
2.3 整数
2.4 浮点类型
2.5 字符
2.6 布尔类型
项目2-1 闪电有多远
2.7 常量
2.7.1 十六进制和八进制常数
2.7.2 字符转义序列
2.7.3 字符串常量
2.8 进一步研究变量
2.8.1 初始化变量
2.8.2 动态初始化
2.9 变量的作用域和生存期
2.10 运算符
2.11 算术运算符
2.11.1 增量和减量运算
2.12 关系和逻辑运算符
2.12.1 短路逻辑运算符
2.13 赋值运算符
2.13.1 赋值的简写形式
2.13.2 赋值中的类型转换
2.14 不兼容类型的造型
2.15 运算符优先级
项目2-2 显示逻辑运算符的真值表
2.16 表达式
2.16.1 表达式中的类型转换
2.16.2 空格和圆括号
2.17 小测验
第3章 程序控制语句
3.1 从键盘输入字符
3.2 if语句
3.2.1 嵌套if语句
3.2.2 if-else-if阶梯
3.3 switch语句
3.3.1 嵌套switch语句
3.3.2 项目3-1:开始建立Java帮助系统
3.4 for循环
3.4.1 for循环的一些变化
3.4.2 空白部分
3.4.3 没有循环体的循环
3.4.4 在循环中声明循环控制变量
3.5 while循环
3.6 do-while循环
项目3-2:改进Java帮助系统
3.7 使用break退出循环
3.8 使用break作为goto的一种形式
3.9 使用continue语句
项目3-3 完成Java帮助系统
3.10 嵌套循环
3.11 小测验
第4章 介绍类、对象和方法
4.1 类基础
4.1.1 类的通用格式
4.1.2 定义类
4.2 对象是如何创建的
4.3 句柄变量和赋值
4.4 方法
4.4.1 为Vehicle类增加一个方法
4.4.2 从方法返回
4.4.3 返回值
4.4.4 使用自变量
4.4.5 为Vehicle类增加一个自变量方法
4.4.6 项目4-1:创建Help类
4.5 构造器
4.5.1 自变量构造器
4.5.2 给Vehicle类增加一个构造器
4.6 再次研究new运算符
4.7 垃圾收集和收尾
4.7.1 finalize()方法
4.7.2 项目4-2:演示收尾
4.8 this关键字
4.9 小测验
第5章 更多数据类型和运算符
5.1 数组
5.1.1 一维数组
5.1.2 项目5-1:数组排序
5.2 多维数组
5.2.1 二维数组
5.2.2 不规则数组
5.2.3 三维或者更多维数的数组
5.2.4 初始化多维数组
5.3 可选择的数组声明语法
5.4 数组句柄赋值
5.5 使用length成员
项目5-2:一个队列类
5.6 String
5.6.1 创建String
5.6.2 String操作
5.6.3 String数组
5.6.4 String是不可改变的
5.6.5 使用命令行参数
5.7 位运算符
5.7.1 位运算符AND、OR、XOR和NOT
5.7.2 移位运算符
5.7.3 位赋值简写
5.7.4 项目5-3:一个ShowBits类
5.8 ?运算符
5.9 小测验
第6章 进一步研究方法和类
6.1 控制对类成员的访问
6.1.1 Java的访问指示符
6.1.2 项目6-1:改进Queue类
6.2 给方法传递对象
6.2.1 参数是如何传递的
6.3 返回对象
6.4 方法重载
6.5 构造器重载
项目6-2:重载Queue构造器
6.6 递归
6.7 理解static
6.7.1 static块
6.7.2 项目6-3:快速排序
6.8 介绍嵌套类和内部类
6.9 小测验
第7章 继 承
7.1 继承的基础
7.1.1 成员访问和继承
7.2 构造器和继承
7.2.1 使用super调用超类构造器
7.3 使用super访问超类成员
项目7-1:扩展Vehicle类
7.4 创建多级类层次
7.5 构造器何时被调用?
7.6 超类句柄和子类对象
7.7 方法覆盖
7.8 覆盖方法支持多态性
7.8.1 为什么覆盖方法?
7.8.2 对TwoDShape使用方法覆盖
7.9 使用抽象类
7.10 使用final
7.10.1 使用final阻止覆盖
7.10.2 使用final阻止继承
7.10.3 对数据成员使用final
7.11 Object类
7.12 小测验
第8章 包和接口
8.1 包
8.1.1 定义包
8.1.2 寻找包和CLASSPATH
8.1.3 一个包的小例子
8.2 包和成员访问
8.2.1 包访问示例
8.2.2 理解Protected成员
8.3 引入包
8.4 Java的类库包含在包中
8.5 接口
8.5.1 实现接口
8.5.2 使用接口句柄
8.5.3 项目8-1:创建一个Queue接口
8.5.4 接口中的变量
8.5.5 接口可以被继承
8.6 小测验
第9章 异常处理
9.1 异常层次
9.2 错误处理基础
9.2.1 使用try和catch
9.2.2 一个简单的异常示例
9.2.3 未捕获异常的后果
9.2.4 异常使你能够柔性地处理错误
9.3 使用多重catch语句
9.3.1 捕获子类异常
9.4 嵌套try块
9.5 掷出异常
9.5.1 重新掷出异常
9.6 进一步研究Throwable
9.7 使用finally
9.8 使用throws
9.9 Java的内建异常
9.10 创建异常子类
项目9-1:给Queue类添加异常
9.12 小测验
第10章 使用I/O
10.1 Java的I/O是依赖于流的
10.1.1 字节流和字符流
10.1.2 字节流类
10.1.3 字符流类
10.1.4 预定义流
10.2 使用字节流
10.2.1 读取控制台输入
10.2.2 写入控制台输出
10.3 使用字节流读写文件
10.3.1 从文件输入
10.3.2 写入文件
10.3.3 读写二进制数据
10.3.4 项目10-1:一个文件比较实用程序
10.4 随机文件访问
10.5 使用Java基于字符的流
10.5.1 使用字符流的控制台输入
10.5.2 使用字符流的控制台输出
10.5.3 使用字符流处理文件I/O
10.6 使用Java的类型包装器转换数字字符串
项目10-2:创建一个基于磁盘的Help系统
10.7 小测验
第11章 多线程编程
11.1 多线程基础
11.2 线程类和可运行接口
11.3 创建一个线程
11.3.1 一些简单的改进
11.3.2 项目11-1:继承Thread
11.4 创建多线程
11.5 决定何时一个线程结束
11.6 线程优先级
11.7 同步
11.7.1 使用同步方法
11.7.2 同步语句
11.8 使用notify()、wait()和notifyAll()进行线程间通信
11.8.1 一个使用wait()和notify()的例子
11.9 挂起、恢复和停止线程
项目11-2:使用主线程
11.10 小测验
第12章 applet、事件以及其他主题
12.1 applet基础
12.2 applet的组织和基本要素
12.2.1 applet 架构
12.2.2 一个完整的applet 框架
12.2.3 applet的初始化和终止
12.3 请求刷新
12.3.1 update()方法
12.3.2 项目12-1:一个简单的标题applet
12.4 使用状态窗口
12.5 给applet传递自变量
12.6 applet类
12.7 事件处理
12.8 授权事件模型
12.8.1 事件
12.8.2 事件源
12.8.3 事件接收器
12.8.4 事件类
12.8.5 事件接收器接口
12.9 使用授权事件模型
12.9.1 处理鼠标事件
12.9.2 一个简单的鼠标事件applet
12.10 更多Java关键字
12.10.1 transient和volatile修饰符
12.10.2 instanceof
12.11 strictfp
12.12 native方法
12.13 下一步做什么?
12.14 小测验
附录A 小测验答案
第1章 Java基础
第2章 介绍数据类型和运算符
第3章 程序控制语句
第4章 介绍类、对象和方法
第5章 更多数据类型和运算符
第6章 进一步研究方法和类
第7章 继承
第8章 包和接口
第9章 违例处理
第10章 使用I/O
第11章 多线程编程
第12章 applet、事件以及其他主题
附录B 使用Java的文档注释
B.1 javadoc标签
B.1.1 @author
B.1.2 @deprecated
B.1.3 {@docRoot}
B.1.4 @exception
B.1.5 {@link}
B.1.6 @param
B.1.7 @return
B.1.8 @see
B.1.9 @serial
B.1.10 @serialData
B.1.11 @serialField
B.1.12 @since
B.1.13 @throws
B.1.14 @version
B.2 文档注释的通用格式
B.3 javadoc的输出
B.4 一个使用文档注释的例子