第1章 Java入门 1
1.1 Java的起源与发展 1
1.2 Java开发环境 2
1.2.1 两种开发环境 2
1.2.2 搭建开发环境 2
1.2.3 了解环境变量 3
1.2.4 了解JDK的目录结构 4
1.3 初步体验Java编程 4
1.3.1 Hello World案例 5
1.3.2 案例分析 5
1.4 JDK API文档的使用 7
1.5 Java学习的建议 8
1.5.1 打好基础 8
1.5.2 眼手脑并用 8
1.5.3 JDK API文档 8
1.5.4 有效使用网络资源 8
1.5.5 计算机英语 8
本章小结 8
习题1 9
第2章 Java编程基础 10
2.1 Java语言基础 10
2.1.1 注释 10
2.1.2 关键字和标识符 10
2.1.3 基本数据类型 11
2.1.4 字面值与常量 15
2.1.5 变量 16
2.1.6 基本类型的类型转换 17
2.1.7 数组 18
2.1.8 方法的参数传递 21
2.1.9 方法的可变参数 23
2.1.10 格式化输出 24
2.1.11 包 25
2.2 Java运算符 26
2.2.1 算术运算符 26
2.2.2 比较运算符 27
2.2.3 逻辑运算符 27
2.2.4 位运算符 27
2.2.5 赋值运算符 28
2.2.6 运算符的优先级 28
2.3 流程控制 28
2.3.1 顺序结构 28
2.3.2 条件分支结构 29
2.3.3 循环结构 31
2.3.4 跳转语句 34
本章小结 35
习题2 35
第3章 面向对象 38
3.1 物理世界与面向对象 38
3.1.1 人与计算机的关系 38
3.1.2 物理世界的认知 38
3.1.3 面向对象方法与UML 42
3.2 类与对象 43
3.2.1 类的定义 43
3.2.2 构造方法 46
3.2.3 对象的创建与使用 47
3.3 封装 47
3.3.1 访问修饰符 47
3.3.2 封装的保护作用 48
3.3.3 增强独立性 48
3.4 类的继承 48
3.4.1 继承 48
3.4.2 继承的UML符号 49
3.4.3 this与super关键字 50
3.5 多态 51
3.5.1 重载 51
3.5.2 覆盖 52
3.6 接口与抽象类 53
3.6.1 接口 53
3.6.2 抽象类 54
3.7 引用类型的类型转换 54
3.7.1 自动类型转换 54
3.7.2 强制类型转换 55
3.7.3 自动打包/拆包机制 56
3.8 其他修饰符 56
3.8.1 final 56
3.8.2 static 57
3.8.3 native 60
3.8.4 transient 61
3.8.5 strictfp 61
3.8.6 volatile 61
3.8.7 assert 61
3.9 类实例对象的创建过程 63
3.10 内部类 64
3.10.1 成员内部类 64
3.10.2 方法内部类 67
3.10.3 匿名内部类 67
3.11 对象之间的关系 69
3.11.1 泛化 69
3.11.2 聚合、组合 70
3.11.3 依赖 71
3.11.4 关联 71
3.12 面向对象程序设计的基本原则 72
3.12.1 单一职责原则 72
3.12.2 开闭原则 72
3.12.3 里氏代换原则 73
3.12.4 依赖倒转原则 75
3.12.5 接口隔离原则 76
3.12.6 合成复用原则 77
3.12.7 迪米特法则 77
本章小结 77
习题3 78
第4章 泛型 80
4.1 为什么要引入泛型 80
4.2 定义简单的泛型 81
4.3 泛型和子类继承 82
4.4 泛型的通配符 83
4.5 泛型方法和类型推断 84
本章小结 85
习题4 85
第5章 异常处理 86
5.1 什么是异常 86
5.2 异常处理机制 86
5.2.1 try/catch/finally 88
5.2.2 throws与throw 89
5.2.3 异常处理编程原则 89
本章小结 90
习题5 90
第6章 多线程 91
6.1 基本概念 91
6.2 线程对象的创建与启动 91
6.2.1 继承Thread类 91
6.2.2 实现Runnable接口 93
6.2.3 两种创建方式的比较 93
6.3 线程的生命周期 93
6.4 前台线程和后台线程 94
6.5 线程的分支与合并 95
6.6 多线程的同步 96
6.6.1 线程安全 96
6.6.2 同步代码块 97
6.6.3 同步方法 98
6.7 线程间的通信 100
本章小结 102
习题6 102
第7章 输入输出I/O 103
7.1 I/O概述 103
7.2 字符集编码 104
7.2.1 基本概念 104
7.2.2 字符集编码的发展 105
7.2.3 汉字编码 107
7.2.4 内码和codepage 108
7.2.5 字符集编码的Java处理 109
7.3 File类与RandomAccessFile类 112
7.3.1 File 112
7.3.2 RandomAccessFile 113
7.4 流 115
7.4.1 低级字节流 116
7.4.2 高级字节流 119
7.4.3 字符流 121
7.4.4 对象流与序列化 122
7.5 NIO包简介 124
7.5.1 为什么要引入NIO包 124
7.5.2 流与块的比较 124
本章小结 124
习题7 124
第8章 Java集合框架 125
8.1 集合框架 125
8.1.1 引入集合框架的原因 125
8.1.2 集合框架视图 125
8.2 集合框架中的常用类与接口 126
8.2.1 Iterator 126
8.2.2 Collection 126
8.2.3 Map 130
8.2.4 集合处理工具 132
本章小结 132
习题8 133
第9章 常用JDK API 134
9.1 Object类 134
9.1.1 Obiect介绍 134
9.1.2 getClass方法reflection机制 135
9.1.3 toString方法 137
9.1.4 equals方法与== 138
9.2 字符串的相关问题 139
9.2.1 String、StringBuffer、StringBuilder类 139
9.2.2 字符串的解析 140
9.2.3 正则表达式 141
9.3 其他常用的JDK类 144
9.3.1 Math、StrictMath与Random 144
9.3.2 日期类 144
9.3.3 System类 147
9.3.4 Runtime类 149
9.4 Scanner类 151
本章小结 151
习题9 152
第10章 枚举enum 153
10.1 声明一个简单的枚举 153
10.2 带参数的枚举值与构造方法 155
10.3 带体的枚举值 155
10.4 实现接口 156
本章小结 157
习题10 157
第11章 GUI编程 158
11.1 GUI概述 158
11.2 GUI编程三要素 158
11.3 图形组件 159
11.4 容器组件 159
11.4.1 Applet 159
11.4.2 Frame 161
11.4.3 Panel 162
11.4.4 Dialog 162
11.4.5 ScrollPane 162
11.5 布局管理器 163
11.5.1 FlowLayout 163
11.5.2 BorderLayout 164
11.5.3 CardLayout 165
11.5.4 GridLayout 166
11.6 事件处理 167
11.6.1 事件源 167
11.6.2 事件 168
11.6.3 监听器 168
11.6.4 监听器接口适配器 170
11.7 菜单 173
11.7.1 下拉式菜单 173
11.7.2 弹出式菜单 174
11.8 Graphics绘图 176
11.8.1 RGB颜色模式 176
11.8.2 字体 177
11.8.3 Java的绘图机制 177
11.9 国际化I18N 179
11.9.1 软件的国际化和本地化 179
11.9.2 118N编程模型 180
11.9.3 Locale 181
11.9.4 本地化的资源 181
11.10 MVC简介 185
11.10.1 什么是MVC 185
11.10.2 观察员模式 186
11.10.3 MVC综合例程 186
11.11 Swing简介 193
本章小结 193
习题11 193
附录A Java编码规范 194
附录B 常用操作命令 206
附录C Java发展大事记 209
参考文献 212