第1章 初识Java 1
1.1 Java诞生的原因 2
1.2 Java的地位 4
1.2.1 网络地位 4
1.2.2 语言地位 4
1.2.3 需求地位 4
1.3 安装JDK 4
1.3.1 3种平台简介 4
1.3.2 安装Java SE平台 5
1.4 Java程序的开发步骤 7
1.5 一个简单的Java应用程序 8
1.5.1 编写源文件 8
1.5.2 编译 9
1.5.3 运行 10
1.6 Java的语言特点 10
1.6.1 简单 10
1.6.2 面向对象 11
1.6.3 多线程 11
1.6.4 安全 11
1.6.5 动态 11
习题1 11
第2章 初识对象和简单数据类型 13
2.1 问题的提出 13
2.2 简单的矩形类 14
2.3 使用矩形类创建对象 15
2.3.1 用类声明对象 15
2.3.2 为对象分配变量 15
2.3.3 使用对象 16
2.4 在Java应用程序中使用矩形对象 16
2.5 Java应用程序的基本结构 17
2.6 一个源文件中编写多个类 19
2.7 标识符与关键字 20
2.7.1 标识符 20
2.7.2 关键字 20
2.8 简单数据类型 20
2.8.1 逻辑类型 21
2.8.2 整数类型 21
2.8.3 字符类型 22
2.8.4 浮点类型 23
2.9 简单数据类型的级别与数据转换 24
2.10 从命令行窗口输入、输出数据 25
2.10.1 输入基本型数据 25
2.10.2 输出基本型数据 26
2.11 编成风格 27
2.11.1 Allmans风格 27
2.11.2 Kernighan风格 27
2.11.3 注释 28
习题2 28
第3章 运算符、表达式和语句 30
3.1 运算符与表达式 30
3.1.1 算术运算符与算术表达式 30
3.1.2 自增,自减运算符 30
3.1.3 算术混合运算的精度 31
3.1.4 关系运算符与关系表达式 31
3.1.5 逻辑运算符与逻辑表达式 31
3.1.6 赋值运算符与赋值表达式 32
3.1.7 位运算符 32
3.1.8 instanceof运算符 33
3.1.9 运算符综述 33
3.2 语句概述 34
3.3 if条件分支语句 34
3.3.1 if语句 34
3.3.2 if-else语句 35
3.3.3 if-else if-else语句 35
3.4 switch开关语句 37
3.5 循环语句 39
3.5.1 for循环语句 39
3.5.2 while循环 40
3.5.3 do-while循环 40
3.6 break和continue语句 41
习题3 42
第4章 类与对象 44
4.1 从抽象到类 44
4.2 类 45
4.2.1 类声明 45
4.2.2 类体 45
4.2.3 成员变量 46
4.2.4 方法 47
4.2.5 需要注意的问题 49
4.2.6 类的UML类图 49
4.3 构造方法与对象的创建 49
4.3.1 构造方法 50
4.3.2 创建对象 50
4.3.3 使用对象 52
4.3.4 对象的引用和实体 53
4.4 参数传值 55
4.4.1 传值机制 55
4.4.2 基本数据类型参数的传值 55
4.4.3 引用类型参数的传值 56
4.4.4 可变参数 58
4.5 有理数的类封装 59
4.6 对象的组合 62
4.6.1 圆锥体 62
4.6.2 关联关系和依赖关系的UML图 63
4.7 实例成员与类成员 64
4.7.1 实例变量和类变量的声明 64
4.7.2 实例变量和类变量的区别 64
4.7.3 实例方法和类方法的定义 66
4.7.4 实例方法和类方法的区别 66
4.8 方法重载与多态 67
4.9 this关键字 69
4.10 包 69
4.10.1 包语句 70
4.10.2 有包名的类的存储目录 70
4.10.3 运行有包名的主类 70
4.11 import语句 72
4.11.1 引入类库中的类 72
4.11.2 引入自定义包中的类 73
4.11.3 使用无包名的类 75
4.11.4 避免类名混淆 75
4.12 访问权限 76
4.12.1 何谓访问权限 76
4.12.2 私有变量和私有方法 76
4.12.3 共有变量和共有方法 77
4.12.4 友好变量和友好方法 78
4.12.5 受保护的成员变量和方法 78
4.12.6 public类与友好类 79
4.13 基本类型的类包装 79
4.13.1 Double和Float类 79
4.13.2 Byte、Short、Integer、Long类 80
4.13.3 Character类 80
4.14 反编译和文档生成器 80
4.14 javap反编译 80
4.14.2 javadoc制作文档 80
习题4 81
第5章 子类与继承 83
5.1 子类与父类 83
5.2 子类的继承性 84
5.2.1 子类和父类在同一包中的继承性 84
5.2.2 子类和父类不在同一包中的继承性 86
5.2.3 protected的进一步说明 86
5.2.4 继承关系的UML图 86
5.2.5 关于instanceof运算符 86
5.3 子类对象的特点 87
5.4 成员变量的隐藏和方法重写 88
5.4.1 成员变量的隐藏 88
5.4.2 方法重写 89
5.5 super关键字 94
5.5.1 用super操作被隐藏的成员变量和方法 94
5.5.2 使用super调用父类的构造方法 95
5.6 final关键字 97
5.6.1 final类 97
5.6.2 final方法 97
5.6.3 常量 97
5.7 对象的上转型对象 98
5.8 继承与多态 100
5.9 abstract类和abstract方法 101
5.10 面向抽象编程 102
5.11 开-闭原则 104
习题5 107
第6章 接口与多态 109
6.1 接口 109
6.1.1 接口的声明与使用 109
6.1.2 理解接口 112
6.1.3 接口的UML图 113
6.2 接口回调 114
6.2.1 接口变量与回调机制 114
6.2.2 接口的多态性 115
6.2.3 abstract类与接口的比较 116
6.3 面向接口编程 116
习题6 119
第7章 数组与枚举 121
7.1 创建数组 121
7.1.1 声明数组 121
7.1.2 为数组分配元素 122
7.1.3 数组元素的使用 123
7.1.4 length的使用 123
7.1.5 数组的初始化 124
7.1.6 数组的引用 124
7.2 遍历数组 125
7.2.1 基于循环语句的遍历 125
7.2.2 使用toString()方法遍历数组 126
7.3 复制数组 127
7.3.1 arraycopy方法 127
7.3.2 copyOf和copyOfRange()方法 128
7.4 排序与二分查找 129
7.5 枚举 130
7.5.1 枚举类型的定义 130
7.5.2 枚举变量 130
7.5.3 枚举类型与for语句和switch语句 131
习题7 132
第8章 内部类与异常类 134
8.1 内部类 134
8.2 匿名类 135
8.2.1 和子类有关的匿名类 135
8.2.2 和接口有关的匿名类 137
8.3 异常类 138
8.3.1 try~catch语句 138
8.3.2 自定义异常类 139
8.4 断言 141
习题8 142
第9章 常用实用类 144
9.1 String类 144
9.1.1 构造字符串对象 144
9.1.2 String类的常用方法 145
9.1.3 字符串与基本数据的相互转化 149
9.1.4 对象的字符串表示 150
9.1.5 字符串与字符、字节数组 151
9.1.6 正则表达式及字符串的替换与分解 153
9.2 StringBuffer类 157
9.2.1 StringBuffer对象的创建 157
9.2.2 StringBuffer类的常用方法 158
9.3 StringTokenizer类 159
9.4 Date类 160
9.4.1 构造Date对象 160
9.4.2 日期格式化 161
9.5 Calendar类 163
9.6 Math类和BigInteger类 165
9.6.1 Math类 165
9.6.2 BigInteger类 166
9.7 DecimalFormat类 167
9.7.1 格式化数字 167
9.7.2 将格式化字符串转化为数字 168
9.8 Pattern类与Match类 169
9.8.1 模式对象 170
9.8.2 匹配对象 170
9.9 Scanner类 171
9.10 System类 173
习题9 174
第10章 输入、输出流 176
10.1 File类 177
10.1.1 文件的属性 177
10.1.2 目录 178
10.1.3 文件的创建与删除 179
10.1.4 运行可执行文件 179
10.2 字节流与字符流 180
10.2.1 InputStream类与OutputSream类 180
10.2.2 Reader类与Writer类 181
10.2.3 关闭流 181
10.3 文件字节流 181
10.3.1 文件字节输入流 182
10.3.2 文件字节输出流 183
10.4 文件字符流 183
10.5 缓冲流 184
10.6 随机流 186
10.7 数组流 189
10.8 数据流 190
10.9 对象流 193
10.10 序列化与对象克隆 195
10.11 文件锁 196
10.12 使用Scanner解析文件 197
10.13 使用Console流读取密码 199
习题10 200
第11章 JDBC数据库操作 202
11.1 Microsoft Access数据库管理系统 202
11.1.1 建立数据库 203
11.1.2 创建表 203
11.2 JDBC 204
11.3 连接数据库 204
11.3.1 连接方式的选择 204
11.3.2 建立JDBC-ODBC桥接器 205
11.3.3 ODBC数据源 205
11.3.4 建立连接 206
11.4 查询操作 208
11.4.1 顺序查询 209
11.4.2 控制游标 211
11.4.3 条件查询 213
11.4.4 排序查询 213
11.4.5 模糊查询 214
11.5 更新、添加与删除操作 215
11.6 使用预处理语句 216
11.6.1 预处理语句优点 216
11.6.2 使用通配符 218
11.7 事务 221
11.7.1 事务及处理 221
11.7.2 JDBC事务处理步骤 221
11.8 批处理 222
11.9 CachedRowSetImpl类 223
习题11 226
第12章 泛型与集合框架 227
12.1 泛型 227
12.1.1 泛型类 228
12.1.2 泛型类声明对象 228
12.1.3 泛型接口 229
12.1.4 泛型的目的 230
12.2 链表 230
12.2.1 LinkedList〈E〉泛型类 230
12.2.2 常用方法 231
12.2.3 遍历链表 231
12.2.4 排序与查找 233
12.2.5 洗牌与旋转 235
12.3 堆栈 237
12.4 散列映射 238
12.4.1 HashMap〈K,V〉泛型类 238
12.4.2 常用方法 239
12.4.3 遍历散列映射 239
12.4.4 基于散列映射的查询 239
12.5 树集 241
12.5.1 TreeSet〈E〉泛型类 241
12.5.2 节点的大小关系 241
12.5.3 TreeSet类的常用方法 241
12.6 树映射 243
12.7 自动装箱与拆箱 244
习题12 245
第13章 Java多线程机制 246
13.1 进程与线程 246
13.1.1 操作系统与进程 246
13.1.2 进程与线程 247
13.2 Java中的线程 247
13.2.1 Java的多线程机制 247
13.2.2 线程的状态与生命周期 248
13.2.3 线程调度与优先级 251
13.3 Thread的子类创建线程 251
13.4 使用Runnable接口 253
13.4.1 Runnable接口与目标对象 253
13.4.2 关于run方法启动的次数 254
13.4.3 在线程中启动其他线程 255
13.5 线程的常用方法 256
13.6 线程同步 259
13.6.1 什么是线程同步 259
13.6.2 通过同步避免切换的影响 261
13.7 在同步方法中使用wait()、notify()和notifyAll()方法 263
13.8 线程联合 264
习题13 265
第14章 Java网络编程 268
14.1 URL类 268
14.1.1 URL的构造方法 269
14.1.2 读取URL中的资源 269
14.2 InetAdress类 270
14.2.1 地址的表示 270
14.2.2 获取地址 271
14.3 套接字 271
14.3.1 套接字 271
14.3.2 客户端套接字 272
14.3.3 ServerSocket对象与服务器端套接字 272
14.3.4 使用多线程技术 275
14.4 UDP数据包 278
14.4.1 发送数据包 279
14.4.2 接收数据包 279
14.5 广播数据包 282
14.6 Java远程调用 284
14.6.1 远程对象及其代理 285
14.6.2 RMI的设计细节 285
习题14 288
第15章 图形用户界面设计 289
15.1 Java Swing概述 289
15.2 窗口 290
15.2.1 JFrarne常用方法 291
15.2.2 菜单条、菜单、菜单项 292
15.3 常用组件与布局 293
15.3.1 常用组件 293
15.3.2 常用容器 295
15.3.3 常用布局 296
15.4 处理事件 301
15.4.1 事件处理模式 301
15.4.2 ActionEvent事件 302
15.4.3 ItemEvent事件 306
15.4.4 DocumentEvent事件 308
15.4.5 MouseEvent事件 310
15.4.6 焦点事件 314
15.4.7 键盘事件 314
15.4.8 匿名类实例或窗口做监视器 317
15.4.9 事件总结 319
15.5 使用MVC结构 319
15.6 对话框 322
15.6.1 消息对话框 322
15.6.2 输入对话框 323
15.6.3 确认对话框 325
15.6.4 颜色对话框 326
15.6.5 文件对话框 327
15.6.6 自定义对话框 330
15.7 发布GUI程序 331
习题15 332
第16章 Java Applet程序 333
16.1 Java Applet的结构 333
16.2 Java Applet的运行原理 334
16.3 在Java Applet中播放声音 336
16.4 网页传值 338
习题16 338