第1章 Java程序设计概述
- 1.1 Java程序设计平台
- 1.2 Java“白皮书”的关键术语
- 1.2.1 简单性
- 1.2.2 面向对象
- 1.2.3 网络技能
- 1.2.4 健壮性
- 1.2.5 安全性
- 1.2.6 体系结构中立
- 1.2.7 可移植性
- 1.2.8 解释型
- 1.2.9 高性能
- 1.2.10 多线程
- 1.2.11 动态性
- 1.3 Java applet与Internet
- 1.4 Java发展简史
- 1.5 关于Java的常见误解
第2章 Java程序设计环境
- 2.1 安装Java开发工具箱
- 2.1.1 下载JDK
- 2.1.2 设置执行路径
- 2.1.3 安装库源文件和文档
- 2.1.4 安装本书中的示例
- 2.1.5 导航Java目录
- 2.2 选择开发环境
- 2.3 使用命令行工具
- 2.4 使用集成开发环境
- 2.5 运行图形化应用程序
- 2.6 建立并运行applet
第3章 Java的基本程序设计结构
- 3.1 一个简单的Java应用程序
- 3.2 注释
- 3.3 数据类型
- 3.3.1 整型
- 3.3.2 浮点类型
- 3.3.3 char类型
- 3.3.4 boolean类型
- 3.4 变量
- 3.4.1 变量初始化
- 3.4.2 常量
- 3.5 运算符
- 3.5.1 自增运算符与自减运算符
- 3.5.2 关系运算符与boolean运算符
- 3.5.3 位运算符
- 3.5.4 数学函数与常量
- 3.5.5 数值类型之间的转换
- 3.5.6 强制类型转换
- 3.5.7 括号与运算符级别
- 3.5.8 枚举类型
- 3.6 字符串
- 3.6.1 子串
- 3.6.2 拼接
- 3.6.3 不可变字符串
- 3.6.4 检测字符串是否相等
- 3.6.5 空串与Null串
- 3.6.6 代码点与代码单元
- 3.6.7 字符串API
- 3.6.8 阅读联机API文档
- 3.6.9 构建字符串
- 3.7 输入输出
- 3.7.1 读取输入
- 3.7.2 格式化输出
- 3.7.3 文件输入与输出
- 3.8 控制流程
- 3.8.1 块作用域
- 3.8.2 条件语句
- 3.8.3 循环
- 3.8.4 确定循环
- 3.8.5 多重选择:switch语句
- 3.8.6 中断控制流程语句
- 3.9 大数值
- 3.10 数组
- 3.10.1 for each循环
- 3.10.2 数组初始化以及匿名数组
- 3.10.3 数组拷贝
- 3.10.4 命令行参数
- 3.10.5 数组排序
- 3.10.6 多维数组
- 3.10.7 不规则数组
第4章 对象与类
- 4.1 面向对象程序设计概述
- 4.1.1 类
- 4.1.2 对象
- 4.1.3 识别类
- 4.1.4 类之间的关系
- 4.2 使用预定义类
- 4.2.1 对象与对象变量
- 4.2.2 Java类库中的Gregorian-Calendar类
- 4.2.3 更改器方法与访问器方法
- 4.3 用户自定义类
- 4.3.1 Employee类
- 4.3.2 多个源文件的使用
- 4.3.3 剖析Employee类
- 4.3.4 从构造器开始
- 4.3.5 隐式参数与显式参数
- 4.3.6 封装的优点
- 4.3.7 基于类的访问权限
- 4.3.8 私有方法
- 4.3.9 final实例域
- 4.4 静态域与静态方法
- 4.4.1 静态域
- 4.4.2 静态常量
- 4.4.3 静态方法
- 4.4.4 工厂方法
- 4.4.5 main方法
- 4.5 方法参数
- 4.6 对象构造
- 4.6.1 重载
- 4.6.2 默认域初始化
- 4.6.3 无参数的构造器
- 4.6.4 显式域初始化
- 4.6.5 参数名
- 4.6.6 调用另一个构造器
- 4.6.7 初始化块
- 4.6.8 对象析构与finalize方法
- 4.7 包
- 4.7.1 类的导入
- 4.7.2 静态导入
- 4.7.3 将类放入包中
- 4.7.4 包作用域
- 4.8 类路径
- 4.9 文档注释
- 4.9.1 注释的插入
- 4.9.2 类注释
- 4.9.3 方法注释
- 4.9.4 域注释
- 4.9.5 通用注释
- 4.9.6 包与概述注释
- 4.9.7 注释的抽取
- 4.10 类设计技巧
第5章 继承
- 5.1 类、超类和子类
- 5.1.1 继承层次
- 5.1.2 多态
- 5.1.3 动态绑定
- 5.1.4 阻止继承:final类和方法
- 5.1.5 强制类型转换
- 5.1.6 抽象类
- 5.1.7 受保护访问
- 5.2 Object:所有类的超类
- 5.2.1 equals方法
- 5.2.2 相等测试与继承
- 5.2.3 hashCode方法
- 5.2.4 toString方法
- 5.3 泛型数组列表
- 5.3.1 访问数组列表元素
- 5.3.2 类型化与原始数组列表的兼容性
- 5.4 对象包装器与自动装箱
- 5.5 参数数量可变的方法
- 5.6 枚举类
- 5.7 反射
- 5.7.1 Class类
- 5.7.2 捕获异常
- 5.7.3 利用反射分析类的能力
- 5.7.4 在运行时使用反射分析对象
- 5.7.5 使用反射编写泛型数组代码
- 5.7.6 调用任意方法
- 5.8 继承设计的技巧
第6章 接口与内部类
- 6.1 接口
- 6.1.1 接口的特性
- 6.1.2 接口与抽象类
- 6.2 对象克隆
- 6.3 接口与回调
- 6.4 内部类
- 6.4.1 使用内部类访问对象状态
- 6.4.2 内部类的特殊语法规则
- 6.4.3 内部类是否有用、必要和安全
- 6.4.4 局部内部类
- 6.4.5 由外部方法访问final变量
- 6.4.6 匿名内部类
- 6.4.7 静态内部类
- 6.5 代理
第7章 图形程序设计
- 7.1 Swing概述
- 7.2 创建框架
- 7.3 框架定位
- 7.3.1 框架属性
- 7.3.2 确定合适的框架大小
- 7.4 在组件中显示信息
- 7.5 处理2D图形
- 7.6 使用颜色
- 7.7 文本使用特殊字体
- 7.8 显示图像
第8章 事件处理
- 8.1 事件处理基础
- 8.1.1 实例:处理按钮点击事件
- 8.1.2 建议使用内部类
- 8.1.3 创建包含一个方法调用的监听器
- 8.1.4 实例:改变观感
- 8.1.5 适配器类
- 8.2 动作
- 8.3 鼠标事件
- 8.4 AWT事件继承层次
第9章 Swing用户界面组件
- 9.1 Swing和模型-视图-控制器设计模式
- 9.1.1 设计模式
- 9.1.2 模型-视图-控制器模式
- 9.1.3 Swing按钮的模型-视图-控制器分析
- 9.2 布局管理概述
- 9.2.1 边框布局
- 9.2.2 网格布局
- 9.3 文本输入
- 9.3.1 文本域
- 9.3.2 标签和标签组件
- 9.3.3 密码域
- 9.3.4 文本区
- 9.3.5 滚动窗格
- 9.4 选择组件
- 9.4.1 复选框
- 9.4.2 单选按钮
- 9.4.3 边框
- 9.4.4 组合框
- 9.4.5 滑动条
- 9.5 菜单
- 9.5.1 菜单创建
- 9.5.2 菜单项中的图标
- 9.5.3 复选框和单选按钮菜单项
- 9.5.4 弹出菜单
- 9.5.5 快捷键和加速器
- 9.5.6 启用和禁用菜单项
- 9.5.7 工具栏
- 9.5.8 工具提示
- 9.6 复杂的布局管理
- 9.6.1 网格组布局
- 9.6.2 组布局
- 9.6.3 不使用布局管理器
- 9.6.4 定制布局管理器
- 9.6.5 遍历顺序
- 9.7 对话框
- 9.7.1 选项对话框
- 9.7.2 创建对话框
- 9.7.3 数据交换
- 9.7.4 文件对话框
- 9.7.5 颜色选择器
第10章 部署应用程序和applet
- 10.1 JAR文件
- 10.1.1 清单文件
- 10.1.2 可运行JAR文件
- 10.1.3 资源
- 10.1.4 密封
- 10.2 Java Web Start
- 10.2.1 沙箱
- 10.2.2 签名代码
- 10.2.3 JNLP API
- 10.3 applet
- 10.3.1 一个简单的applet
- 10.3.2 applet的HTML标记和属性
- 10.3.3 object标记
- 10.3.4 使用参数向applet传递信息
- 10.3.5 访问图像和音频文件
- 10.3.6 applet上下文
- 10.4 应用程序首选项存储
- 10.4.1 属性映射
- 10.4.2 Preferences API
第11章 异常、断言、日志和调试
- 11.1 处理错误
- 11.1.1 异常分类
- 11.1.2 声明已检查异常
- 11.1.3 如何抛出异常
- 11.1.4 创建异常类
- 11.2 捕获异常
- 11.2.1 捕获多个异常
- 11.2.2 再次抛出异常与异常链
- 11.2.3 finally子句
- 11.2.4 带资源的try语句
- 11.2.5 分析堆栈跟踪元素
- 11.3 使用异常机制的技巧
- 11.4 使用断言
- 11.4.1 启用和禁用断言
- 11.4.2 使用断言完成参数检查
- 11.4.3 为文档假设使用断言
- 11.5 记录日志
- 11.5.1 基本日志
- 11.5.2 高级日志
- 11.5.3 修改日志管理器配置
- 11.5.4 本地化
- 11.5.5 处理器
- 11.5.6 过滤器
- 11.5.7 格式化器
- 11.5.8 日志记录说明
- 11.6 调试技巧
- 11.7 GUI程序排错技巧
- 11.8 使用调试器
第12章 泛型程序设计
- 12.1 为什么要使用泛型程序设计
- 12.2 定义简单泛型类
- 12.3 泛型方法
- 12.4 类型变量的限定
- 12.5 泛型代码和虚拟机
- 12.5.1 翻译泛型表达式
- 12.5.2 翻译泛型方法
- 12.5.3 调用遗留代码
- 12.6 约束与局限性
- 12.6.1 不能用基本类型实例化类型参数
- 12.6.2 运行时类型查询只适用于原始类型
- 12.6.3 不能创建参数化类型的数组
- 12.6.4 Varargs警告
- 12.6.5 不能实例化类型变量
- 12.6.6 泛型类的静态上下文中类型变量无效
- 12.6.7 不能抛出或捕获泛型类的实例
- 12.6.8 注意擦除后的冲突
- 12.7 泛型类型的继承规则
- 12.8 通配符类型
- 12.8.1 通配符的超类型限定
- 12.8.2 无限定通配符
- 12.8.3 通配符捕获
- 12.9 反射和泛型
- 12.9.1 使用Class参数进行类型匹配
- 12.9.2 虚拟机中的泛型类型信息
第13章 集合
第14章 多线程
附录 Java关键字