第1章 Java语言概述 1
1.1 Java语言的产生及其特点 1
1.1.1 Java语言发展简史 1
1.1.2 Java虚拟机 2
1.1.3 Java平台是不断扩展的计算平台 3
1.1.4 Java语言的特点 4
1.1.5 Java与C/C++语言的异同 6
1.2 Java运行环境与开发环境 7
1.2.1 Java运行环境 7
1.2.2 Java SDK开发环境 8
1.2.3 JDK开发环境工具简单介绍 13
1.3 Java程序举例 15
1.3.1 简单的Java应用程序 15
1.3.2 简单的Applet小程序 18
1.3.3 Servlet 20
1.4 其他集成运行环境 20
习题与思考 23
第2章 数据类型及其运算 24
2.1 标识符和关键字 24
2.1.1 标识符 24
2.1.2 关键字 25
2.1.3 注释 25
2.2 常量和变量 26
2.2.1 变量 26
2.2.2 常量 27
2.3 基本数据类型 27
2.3.1 布尔类型 27
2.3.2 字符类型 28
2.3.3 整数类型 29
2.3.4 浮点类型 29
2.3.5 各类型数据间的相互转换 30
2.4 运算符 30
2.4.1 算数运算符 31
2.4.2 赋值运算符 32
2.4.3 条件运算符 33
2.4.4 位运算符 34
2.4.5 关系运算符 36
2.4.6 逻辑运算符 36
2.5 表达式 37
2.6 数组 38
2.6.1 一维数组 38
2.6.2 二维数组 41
2.7 字符串 43
习题与思考 44
第3章 程序控制语句 46
3.1 选择语句 46
3.1.1 if语句 46
3.1.2 switch语句 48
3.2 循环语句 49
3.2.1 while语句 50
3.2.2 do-while循环 50
3.2.3 for循环 51
3.3 跳转语句 55
3.3.1 使用break语句 55
3.3.2 使用continue语句 57
3.3.3 使用return语句 58
习题与思考 59
第4章 Java面向对象程序设计基础 60
4.1 面向对象的基本概念 60
4.1.1 面向对象编程的概念 60
4.1.2 客观事物的抽象 61
4.2 类的定义 62
4.2.1 类声明 62
4.2.2 类体 63
4.2.3 实例化对象 67
4.2.4 构造方法说明 69
4.2.5 对象的清除 71
4.2.6 方法重载 71
4.3 类和对象的使用 74
4.3.1 实例变量和类变量 74
4.3.2 实例方法和类方法 74
4.4 包(package) 77
4.4.1 package语句 77
4.4.2 import语句 78
4.4.3 编译和运行包 79
4.5 成员变量及方法的访问权限 81
4.5.1 公共类型(public) 81
4.5.2 保护类型(protected) 82
4.5.3 私有类型(private) 83
4.6 final、this及其他 84
4.6.1 final关键字 84
4.6.2 this引用 86
4.6.3 super关键字 86
4.6.4 null关键字 86
4.6.5 java.lang.Object类介绍 87
4.6.6 递归方法 88
4.6.7 命令行参数的输入 89
4.6.8 JAR文件的使用 89
习题与思考 90
第5章 面向对象高级程序设计 91
5.1 继承 91
5.1.1 创建子类 91
5.1.2 成员变量的隐藏和方法的重写 95
5.1.3 super 96
5.1.4 对象的上转型对象 97
5.2 多态性 99
5.3 抽象类和抽象方法 102
5.4 接口 103
5.4.1 接口的定义 103
5.4.2 使用接口的优点 104
5.5 枚举类型 105
5.6 Annotation 107
5.6.1 JDK内置的基本注释 108
5.6.2 自定义Annotation注释 109
5.7 内部类和匿名类 109
5.7.1 内部类的定义 109
5.7.2 内部类特性 110
5.7.3 匿名类 115
5.8 简单案例 116
习题与思考 120
第6章 字符串处理 121
6.1 String类 121
6.1.1 字符串的构造 121
6.1.2 String类的常用方法 122
6.2 StringBuffer类 128
6.2.1 StringBuffer类的构造方法、声明和实例化 129
6.2.2 StringBuffer类的常用方法 129
6.3 StringTokenizer类的应用 133
6.3.1 构造方法 133
6.3.2 StringTokenizer类的常用方法 134
6.4 字符串与其他数据类型的转换 135
6.4.1 其他数据转换为字符串 135
6.4.2 字符串转化成其他数据 137
习题与思考 138
第7章 Java标准类库 139
7.1 简单类型包装器类 139
7.1.1 Number 139
7.1.2 Double和Float 140
7.1.3 Byte、Short、Integer和Long 143
7.1.4 数字和字符串的转换 144
7.1.5 Character 145
7.1.6 Boolean 147
7.1.7 自动装箱与拆箱 148
7.2 System 149
7.2.1 记录程序执行的时间 151
7.2.2 复制数组 151
7.2.3 访问JVM环境属性 152
7.3 Runtime 153
7.3.1 内存管理 154
7.3.2 执行其他的程序 155
7.4 Math 155
7.5 日期时间实用工具类 156
7.5.1 Date(日期) 157
7.5.2 Calendar(日历) 158
7.5.3 日期的格式化与解析 161
7.6 Java集合框架 164
7.6.1 集合接口 165
7.6.2 实现List接口的类 169
7.6.3 实现Set接口的类 173
7.6.4 实现Queue和Deque接口的类 176
7.6.5 通过迭代接口访问类集 180
7.6.6 Generics(泛型) 182
7.6.7 映射接口(Map) 183
7.6.8 实现Map接口的类 185
7.6.9 比较器(Comparator) 189
7.6.10 类集算法 190
7.6.11 Arrays 193
习题与思考 194
第8章 Java异常处理 196
8.1 什么是异常 196
8.2 异常处理机制 198
8.2.1 Java的异常处理机制 198
8.2.2 异常类的类层次 198
8.2.3 Throwable类的常用方法 201
8.3 异常的处理 201
8.3.1 捕获异常try-catch-finally 202
8.3.2 声明抛弃异常 203
8.3.3 抛出异常 204
8.4 创建用户异常类 206
习题与思考 207
第9章 输入输出处理 208
9.1 I/O流的概念和划分 208
9.1.1 理解数据流 208
9.1.2 Java流的划分 208
9.2 文件的操作 212
9.2.1 File类 212
9.2.2 目录 215
9.3 字节流处理 217
9.3.1 InputStream/OutputStream 218
9.3.2 标准输入输出流 219
9.3.3 文件字节流 222
9.3.4 过滤流 225
9.3.5 随机存取文件 227
9.3.6 其他字节流 229
9.4 字符流处理 230
9.4.1 Reader/Writer 230
9.4.2 文件字符流 231
9.4.3 字节流向字符流的转化 232
9.4.4 Scanner及其他字符流 234
9.5 串行化 236
9.5.1 串行化的概念 236
9.5.2 串行化的方法 236
9.5.3 定制串行化 240
习题与思考 241
第10章 线程 242
10.1 线程的概念 242
10.2 线程的创建 243
10.2.1 采用继承法创建线程 243
10.2.2 通过实现接口创建线程 245
10.3 线程的生命周期及调度 245
10.3.1 线程生命周期 245
10.3.2 线程调度和优先级 247
10.4 线程互斥 248
10.4.1 问题的提出 248
10.4.2 互斥对象 250
10.5 线程同步 253
10.6 线程通信 256
10.7 线程死锁 258
10.8 线程池 260
10.8.1 固定尺寸线程池 261
10.8.2 可变尺寸线程池 262
习题与思考 264
第11章 GUI程序设计 265
11.1 JFC简介 265
11.2 Swing组件的结构 267
11.2.1 类层次结构 267
11.2.2 MVC模式 269
11.3 顶层容器类 270
11.3.1 JFrame 270
11.3.2 JDialog、JWindow和JApplet 271
11.4 布局管理 272
11.4.1 无布局管理器布局 272
11.4.2 FlowLayout 273
11.4.3 BorderLayout 274
11.4.4 GridLayout 276
11.4.5 其他布局管理器 276
11.4.6 复杂界面布局 277
11.5 事件处理 280
11.5.1 事件处理模型 280
11.5.2 事件类 282
11.5.3 事件监听器 283
11.5.4 事件适配器 285
11.5.5 键盘与鼠标事件 286
11.6 Swing组件 290
11.6.1 按钮JButton 290
11.6.2 文本标签JLabel 290
11.6.3 单行文本框JTextField 291
11.6.4 文本输入区JTextArea 291
11.6.5 JTable和JTree 291
11.6.6 菜单 295
11.7 图形编程 297
11.7.1 AWT图形API 297
11.7.2 Java2D图形API 298
11.7.3 图形相关的父类方法 300
11.8 加载和使用多媒体资源 301
11.8.1 加载图像 301
11.8.2 播放音频文件 303
11.8.3 Jar文件中多媒体资源的加载 304
习题与思考 306
第12章 Java Applet 307
12.1 Applet程序设计基础 307
12.1.1 加载Applet 307
12.1.2 Applet的安全性限制 308
12.1.3 Applet的生命周期 308
12.2 java.applet包 310
12.2.1 Applet类的继承关系 310
12.2.2 Applet类的方法 310
12.2.3 HTML和Applet 311
12.2.4 Java插件技术 313
12.2.5 Appletviewer 314
12.2.6 Applet的显示 315
12.3 Applet中的多媒体应用 315
12.3.1 URL 315
12.3.2 加载图像 316
12.3.3 播放声音 317
12.4 Applet中的事件处理 318
12.4.1 鼠标事件 319
12.4.2 键盘响应 321
12.5 JApplet和Applet 323
习题与思考 324
第13章 JDBC 325
13.1 JDBC的结构 325
13.1.1 JDBC数据库应用模型 325
13.1.2 JDBC驱动程序 326
13.2 通过JDBC访问数据库 328
13.2.1 基本流程 328
13.2.2 常用的JDBC API 332
13.2.3 事务 337
13.2.4 Java数据类型和SQL数据类型间的关系 337
13.3 数据库存取优化 338
13.3.1 prepared语句 339
13.3.2 存储过程 340
13.4 JDBC编程实例 343
习题与思考 350
第14章 网络通信 352
14.1 网络通信简介 352
14.2 URL通信 353
14.2.1 URL简介 353
14.2.2 URL类 353
14.2.3 通过字节流访问WWW资源 355
14.2.4 通过URLConnection实现双向通信 355
14.2.5 使用HttpURLConnection 356
14.3 Socket通信 357
14.3.1 服务器程序 357
14.3.2 客户机程序 359
14.3.3 服务多个客户 362
14.3.4 数据报通信 366
14.4 远程方法调用(RMI) 372
习题与思考 373
第15章 Java安全技术 374
15.1 安全基本知识 374
15.1.1 计算机安全基础 374
15.1.2 密码学 376
15.2 Java的安全模型 378
15.2.1 安全模型的演化 378
15.2.2 Java 2安全模型 379
15.2.3 Java 2的安全管理器 381
15.2.4 小程序安全性 382
15.2.5 JDK安全工具 385
15.2.6 Java小程序的安全部署 387
习题与思考 396
第16章 Web服务器端编程 397
16.1 在Tomcat上运行Servlet及JSP的简单例子 397
16.2 Servlet介绍 402
16.2.1 Servlet的概念 402
16.2.2 Servlet应用范围和运行环境 402
16.2.3 Servlet常用类、接口和生命周期 403
16.2.4 Servlet应用举例 407
16.3 JSP介绍 412
16.3.1 JSP的概念 412
16.3.2 JSP的运行方式 413
16.3.3 JSP指令介绍 413
16.3.4 JSP中的隐藏对象 419
16.3.5 JSP应用举例 420
16.4 JSP和Servlet协同工作 423
习题与思考 425
第17章 轻型框架介绍 426
1 7.1 Hibernate、Struts和Spring介绍 426
17.1.1 Hibernate框架介绍 426
17.1.2 Struts框架介绍 427
17.1.3 Spring框架介绍 429
17.1.4 轻型框架的流行 430
17.2 Hibernate案例实现 431
17.2.1 Hibernate的体系结构 432
17.2.2 Hibernate的文档和软件 433
17.2.3 Hibernate的简单案例 434
17.3 Hibernate Synchronizer插件简介 439
习题与思考 440
第18章 Java EE规范和Java ME介绍 441
18.1 Java EE规范 441
18.1.1 Java EE的基本概念 441
18.1.2 Java EE框架 442
18.1.3 Java EE的核心技术 446
18.2 EJB组件模型 448
18.2.1 EJB容器 449
18.2.2 远程和本地接口 450
18.2.3 会话Bean 451
18.2.4 部署EJB 452
18.2.5 EJB编程实例 453
18.3 Java ME介绍 456
18.3.1 Java ME概述 456
18.3.2 Java ME技术架构 457
18.3.3 MIDP应用程序开发 465
习题与思考 471
第19章 Java技术应用简单案例 472
19.1 Java桌面应用程序案例 472
19.1.1 编写游戏主程序类Pintu 472
19.1.2 编写绘图容器类PicPanel 475
19.2 Java Web应用案例 481
19.2.1 创建数据库 481
19.2.2 编写Servlet处理类 482
19.2.3 编写网页 488
19.2.4 编写web.xml部署描述符 493
19.2.5 网站运行效果 494
习题与思考 495
附录 上机实验 496
参考文献 500