第1章 Java简介 1
1.1 Java语言的历史 1
1.2 Java语言的特点 2
1.3 本章小结 5
1.4 习题 6
第2章 Java编程环境 7
2.1 Java运行环境和开发环境 7
2.2 开发环境的安装和使用 8
2.2.1 Java2SDK简介 8
2.2.2 安装Java2SDK 8
2.2.3 Java2SDK的使用 10
2.3 编辑器选择 11
2.3.1 Ultraedit编辑器 11
2.3.2 Emacs编辑器 12
2.4 Java程序的结构 13
2.5 程序调试 15
2.6 本章小结 17
2.7 上机练习 18
2.8 习题 18
第3章 Java基本语法 19
3.1 Java的常量和变量 19
3.1.1 常量 19
3.1.2 变量 19
3.2 Java的简单数据类型 20
3.2.1 字符和字符串 20
3.2.2 整型 21
3.2.3 浮点型 22
3.2.4 布尔型 22
3.2.5 数据类型转换 23
3.3 Java的运算符 23
3.3.1 算术运算符 23
3.3.2 位运算符 26
3.3.3 赋值运算符 28
3.3.4 关系运算符 28
3.3.5 布尔运算符 30
3.3.6 条件运算符 31
3.3.7 []运算符 31
3.3.8 点运算符 31
3.3.9 new运算符 31
3.3.10 instanceof运算符 31
3.4 Java的表达式和语句 32
3.4.1 表达式 32
3.4.2 语句 32
3.4.3 语句块 33
3.5 程序流程控制 33
3.5.1 循环控制 33
3.5.2 程序分支 35
3.5.3 break语句和continue语句 38
3.5.4 返回 40
3.5.5 例外(Exception) 40
3.6 本章小结 41
3.7 上机练习 41
3.8 习题 42
第4章 Java与面向对象编程 44
4.1 面向对象编程 44
4.1.1 面向对象编程概述 44
4.1.2 面向对象程序设计思想 45
4.2 类和对象的使用 47
4.2.1 类的定义 47
4.2.2 成员变量 48
4.2.3 方法 49
4.2.4 创建对象和初始化 50
4.2.5 成员变量引用和方法调用 51
4.2.6 this关键字 53
4.2.7 对象资源回收和finalize()方法 54
4.2.8 对象比较 56
4.2.9 对象拷贝 58
4.3 类 59
4.3.1 类的修饰符 59
4.3.2 嵌套类 60
4.4 成员变量 64
4.4.1 成员变量的修饰符 64
4.4.2 实例变量和类变量 65
4.4.3 变量初始化 67
4.5 方法 68
4.5.1 方法声明 68
4.5.2 方法的参数 68
4.5.3 方法重载 70
4.5.4 构造方法 71
4.5.5 方法的修饰符 73
4.5.6 静态方法 73
4.6 类的继承 75
4.6.1 继承 75
4.6.2 成员变量的继承和隐藏 75
4.6.3 方法继承、方法覆盖和方法隐藏 76
4.6.4 super关键字 78
4.6.5 抽象类 80
4.6.6 抽象方法 82
4.6.7 final关键字 85
4.6.8 单继承和多继承 86
4.7 方法和成员变量的权限控制 87
4.7.1 public 87
4.7.2 protected 88
4.7.3 private 90
4.7.4 缺省情况 91
4.7.5 存取方法 93
4.8 本章小结 94
4.9 上机练习 95
4.10 习题 96
第5章 Java的数据结构 99
5.1 数组 99
5.1.1 一维数组 99
5.1.2 多维数组 102
5.2 集合简介 104
5.2.1 Java集合框架(Java Collection Framework)概述 105
5.2.2 Java集合的发展历史 106
5.3 集合接口说明 106
5.3.1 Collection接口 106
5.3.2 Set接口 109
5.3.3 List接口 119
5.3.4 Map接口 124
5.3.5 集合同步 130
5.4 算法 132
5.4.1 排序 133
5.4.2 混排 134
5.4.3 查找 134
5.4.4 最大值、最小值 134
5.4.5 其他 135
5.5 早期Java的集合 135
5.5.1 Vector 135
5.5.2 BitSet 135
5.5.3 Stack 136
5.5.4 Hashtable 137
5.6 本章小结 137
5.7 上机练习 138
5.8 习题 138
第6章 字符串操作 141
6.1 字符和字符串 141
6.2 String类 141
6.2.1 String类的构造函数 141
6.2.2 字符串比较 142
6.2.3 hashCode()方法 143
6.2.4 定位字符和子串 144
6.2.5 抽取子串 145
6.2.6 字符串修改 146
6.2.7 String类的其他方法 146
6.3 StringBuffer类 147
6.3.1 StringBuffer类的构造函数 147
6.3.2 length()、capacity()、setLength()和ensure Capacity()方法 148
6.3.3 charAt()、setCharAt()、 getChars()和reverse()方法 149
6.3.4 Append()方法 150
6.3.5 插入和删除 151
6.3.6 StringBuffer类的其他方法 152
6.4 StringTokenizer类 152
6.4.1 StringTokenizer类的构造函数 152
6.4.2 StringTokenizer类的常用方法 152
6.4.3 改进的StringTokenizer类:BreakIteratot类 154
6.5 使用正则表达式 157
6.5.1 正则表达式 157
6.5.2 Pattern类 159
6.5.3 Matcher类 159
6.5.4 操作符优先级 161
6.5.5 正则表达式总结 161
6.6 本章小结 163
6.7 上机练习 163
6.8 习题 164
第7章 接口和包 166
7.1 接口概述 166
7.1.1 什么是接口 166
7.1.2 接口定义说明 167
7.2 接口的定义 167
7.2.1 接口的声明 167
7.2.2 基接口 168
7.3 定义接口成员 168
7.4 访问接口 169
7.5 接口与抽象类 171
7.5.1 抽象类与接口的区别 171
7.5.2 使用抽象类和接口的场合 171
7.5.3 抽象类实现接口 173
7.6 包 174
7.6.1 package语句 174
7.6.2 import语句 174
7.6.3 编译和运行 175
7.7 本章小结 176
7.8 上机练习 176
7.9 习题 176
第8章 异常处理 178
8.1 异常处理概述 178
8.1.1 为什么要使用异常处理 178
8.1.2 Java中的异常机制 179
8.1.3 异常的产生 179
8.2 异常的捕捉和处理 179
8.2.1 捕捉和处理:try-catch语句 180
8.2.2 抛出异常(Throw Exception):throw语句和throws语句 181
8.2.3 缺省处理(finally语句) 181
8.3 Java的标准异常 181
8.3.1 异常类(Exception类) 182
8.3.2 标准异常中Exception类的派生类 183
8.4 自定义异常 183
8.4.1 编写自定义异常 183
8.4.2 捕捉并处理自定义异常 184
8.4.3 finally处理 186
8.5 本章小结 187
8.6 上机练习 187
8.7 习题 187
第9章 Java的IO系统 190
9.1 Java的IO系统概述 190
9.1.1 流的概念 190
9.1.2 Java IO系统介绍 190
9.1.3 字符流API 191
9.1.4 字节流API 191
9.2 字符流 191
9.2.1 文件流 191
9.2.2 管道流 192
9.3 字节流 193
9.3.1 文件流 193
9.3.2 管道流 194
9.3.3 过滤器流 195
9.4 文件和目录管理 204
9.4.1 File类 204
9.4.2 遍历目录 204
9.4.3 创建、删除和重命名文件目录 206
9.4.4 文件或目录信息获取 207
9.5 RandomAccessFile类 209
9.6 Java的新IO系统:NIO 210
9.6.1 传统IO系统的缺点 210
9.6.2 NIO概述 211
9.6.3 缓存(Buffer) 211
9.6.4 字符集(Charset) 214
9.6.5 通道(Channel) 215
9.6.6 选择器(Selector) 222
9.6.7 NIO应用实例 225
9.7 本章小结 227
9.8 上机练习 228
9.9 习题 228
第10章 多线程编程 230
10.1 多线程概述 230
10.1.1 什么是多线程 230
10.1.2 为什么要使用多线程 231
10.2 建立Java线程 231
10.2.1 计时器 231
10.2.2 Thread类 233
10.2.3 Runnable接口 239
10.3 线程优先级 241
10.3.1 线程优先级和线程调度 241
10.3.2 用户线程和守护线程 244
10.4 线程同步 244
10.4.1 生产者-消费者问题 244
10.4.2 对象锁 248
10.4.3 wait()、notify()和notifyAll()方法 249
10.4.4 饥饿和死锁 251
10.5 线程组 254
10.5.1 创建一个线程组 254
10.5.2 线程组的方法 256
10.6 本章小结 257
10.7 上机练习 257
10.8 习题 257
第11章 Java小程序Applet 260
11.1 Applet程序基础 260
11.1.1 Applet小程序 260
11.1.2 Applet程序的生命周期 263
11.2 绘制图形 264
11.2.1 paint()方法 264
11.2.2 使用Graphics类绘制字符串 265
11.2.3 Graphics类的其他绘图方法 265
11.3 Applet中的事件处理 267
11.3.1 键盘事件处理 269
11.3.2 鼠标事件处理 270
11.4 本章小结 273
11.5 上机练习 273
11.6 习题 273
第12章 操作数据库 274
12.1 JDBC技术 274
12.1.1 JDBC技术简介 274
12.1.2 JDBC技术规范 275
12.2 SQL语言 276
12.2.1 删除和修改表 276
12.2.2 SELECT语句 277
12.2.3 插入、删除和修改记录 278
12.2.4 聚类函数 279
12.3 JDBC基本操作 279
12.3.1 加载JDBC驱动 279
12.3.2 连接数据库 280
12.3.3 Statement接口 280
12.3.4 结果集 282
12.3.5 元数据集 282
12.3.6 错误处理 283
12.4 JDBC高级操作 284
12.4.1 PreparedStatement 284
12.4.2 使用事务控制 286
12.4.3 存储过程 286
12.5 本章小结 289
12.6 上机练习 289
12.7 习题 289
第13章 网络编程 290
13.1 网络初步 290
13.1.1 四层体系模型 290
13.1.2 TCP协议和UDP协议 291
13.1.3 IP协议 292
13.1.4 域名 293
13.1.5 套接字 293
13.2 流套接字(Stream Socket) 294
13.2.1 InetAddress类 294
13.2.2 Socket类 296
13.2.3 客户端例子 297
13.2.4 ServerSocket类 298
13.2.5 服务器例子 299
13.2.6 能处理多个客户端的服务器 301
13.3 数据报套接字(Datagram Socket) 304
13.3.1 DatagramPacket类 304
13.3.2 DatagramSocket类 305
13.3.3 多播技术和MulticastSocket类 307
13.4 NIO在网络编程中的应用 310
13.4.1 NIO回顾 311
13.4.2 套接字通道 311
13.4.3 数据报通道 314
13.5 本章小节 315
13.6 上机练习 316
13.7 习题 316
第14章 Servlet编程基础 317
14.1 CGI技术简介 317
14.2 Servlet基础 317
14.2.1 Servlet的生命周期 319
14.2.2 Servlet的方法 319
14.3 Servlet信息交互 320
14.3.1 请求信息 320
14.3.2 表单 321
14.3.3 Session 322
14.3.4 Cookie 323
14.4 JSP简介 324
14.4.1 一个JSP例子 324
14.4.2 JSP语法提要 325
14.4.3 JSP的内置对象 333
14.5 本章小结 333
14.6 上机练习 334
14.7 习题 334
第15章 J2EE技术简介 335
15.1 J2EE技术概述 335
15.2 J2EE的重要概念 336
15.2.1 J2EE的四层结构 336
15.2.2 容器 337
15.2.3 J2EE的核心API与组件 339
15.2.4 Enterprise Beans的分类 340
15.3 J2EE的开发流程 341
15.3.1 J2EE应用程序的内容 342
15.3.2 J2EE应用程序的开发阶段 342
15.4 J2EE的开发环境 343
15.4.1 J2SDKEE的安装和配置 343
15.4.2 deploytool工具 343
15.5 J2EE开发示例 344
15.5.1 创建J2EE应用程序 344
15.5.2 创建EJB 344
15.5.3 创建J2EE应用程序客户端 346
15.5.4 创建Web客户端 349
15.5.5 部署和运行 351
15.6 本章小结 352
15.7 上机练习 353
15.8 习题 353
第16章 J2ME技术简介 354
16.1 Java2 Micro Edition平台简介 354
16.1.1 J2ME的定义 354
16.1.2 配置(Configuration)和简表(Profile) 354
16.2 CLDC和MIDP的API 357
16.2.1 CLDC的API 357
16.2.2 MIDP的API 357
16.3 MIDP程序设计 358
16.3.1 MIDlet 358
16.3.2 MIDlet程序结构 359
16.3.3 开发环境 360
16.3.4 编译、打包和部署 361
16.4 MIDP程序图形界面元件 364
16.4.1 MIDP图形界面元件的层次 364
16.4.2 高级API 365
16.4.3 低级API 375
16.5 本章小结 378
16.6 上机练习 378
16.7 习题 379