第1篇 认识Java及其环境配置
第1章 认识Java... 3
1.1 什么是Java.. 3
1.2 Java语言背景...... 3
1.3 Java可以做什么...... 3
1.4 Java的技术特点...... 4
1.5 Java类库概述...... 5
1.6 Java平台介绍...... 5
1.7 Java的工作方式...... 6
1.8 Java语言对软件开发技术的影响...... 6
1.9 Java语言的应用前景...... 7
第2章 下载和安装JDK 5.0... 9
2.1 系统要求...... 9
2.2 下载和安装...... 9
2.2.1 下载JDK 5.0... 9
2.2.2 安装JDK 5.0... 10
2.2.3 设置环境变量...... 12
2.3 第一个Java程序“HelloWorld”...... 13
2.3.1 编写HelloWorld.java.. 13
2.3.2 编译和运行...... 13
2.3.3 程序解析...... 14
第3章 选择开发工具IDE.... 15
3.1 常见的IDE介绍...... 15
3.1.1 文本编辑器UltraEdit和EditPlus.. 15
3.1.2 Borland公司的JBuilder.. 17
3.1.3 Sun公司的NetBeans.. 17
3.1.4 开源的Eclipse.. 18
3.2 Eclipse介绍...... 19
3.2.1 下载和安装Eclipse.. 19
3.2.2 Eclipse界面一览...... 20
3.3 使用Eclipse进行开发...... 21
3.3.1 新建工程...... 21
3.3.2 新建类...... 22
3.3.3 运行类...... 23
第2篇 Java语言基础
第4章 Java基本语法...... 27
4.1 变量和基本数据类型...... 27
4.1.1 变量...... 27
4.1.2 4类基本数据类型...... 28
4.1.3 String不是基本数据类型...... 31
4.2 类型转换...... 31
4.2.1 基本数据类型的转换...... 31
4.2.2 基本数据类型的造型...... 32
4.3 标识符...... 32
4.4 运算符...... 33
4.4.1 单操作数运算符...... 33
4.4.2 算术运算符...... 35
4.4.3 移位运算符...... 35
4.4.4 比较运算符...... 36
4.4.5 按位运算符...... 36
4.4.6 逻辑运算符...... 36
4.4.7 条件运算符...... 36
4.4.8 赋值运算符...... 37
4.4.9 运算符优先级...... 38
4.5 程序流程控制—循环语句...... 38
4.5.1 for循环语句...... 38
4.5.2 while循环语句...... 39
4.5.3 do while循环语句...... 40
4.6 程序流程控制—选择判断语句...... 41
4.6.1 if else语句...... 41
4.6.2 switch语句...... 43
4.7 跳转语句...... 45
4.7.1 break 语句和continue语句...... 45
4.7.2 return语句...... 46
4.8 实战练习...... 47
4.8.1 使用for循环来实现对1~99之间奇数的求和...... 47
4.8.2 for循环语句结合switch语句的使用...... 48
4.8.3 多重循环实现图形的绘制...... 48
第5章 Java面向对象程序设计(上)...... 53
5.1 类概述...... 53
5.1.1 类的基本结构...... 53
5.1.2 类的定义...... 54
5.1.3 .java源文件结构...... 55
5.1.4 main()入口方法...... 55
5.2 类的成员变量和方法...... 56
5.2.1 访问修饰符public、private、protect和default. 57
5.2.2 构造方法...... 57
5.2.3 定义变量...... 58
5.2.4 定义成员方法...... 58
5.2.5 参数的传递...... 60
5.2.6 方法的返回值...... 61
5.2.7 成员方法重载与过载...... 63
5.2.8 static静态成员...... 64
5.2.9 final关键字...... 66
5.3 对象概述...... 67
5.3.1 对象的声明及创建...... 67
5.3.2 调用对象的方法...... 69
5.3.3 对象的生存周期...... 71
5.3.4 对象的清理...... 71
5.3.5 判断对象所属类...... 71
5.4 实战练习...... 73
第6章 Java面向对象程序设计(下)...... 77
6.1 建立面向对象的思想...... 77
6.1.1 现实生活中的对象...... 77
6.1.2 如何抽象出类和对象...... 78
6.1.3 面向对象设计的好处...... 78
6.1.4 面向对象的术语介绍...... 78
6.2 类的继承...... 78
6.2.1 继承的意义...... 78
6.2.2 如何定义子类...... 79
6.2.3 覆盖父类中的方法...... 81
6.2.4 this关键字的使用...... 83
6.2.5 super的使用...... 83
6.2.6 继承的层次结构...... 83
6.3 抽象类与接口...... 84
6.3.1 抽象类和抽象方法...... 84
6.3.2 如何定义和使用抽象类...... 85
6.3.3 什么是接口...... 87
6.3.4 如何定义接口...... 87
6.3.5 实现接口...... 87
6.3.6 接口的重要性...... 89
6.4 内部类和匿名类...... 89
6.4.1 什么是内部类...... 89
6.4.2 如何使用内部类...... 90
6.4.3 什么是匿名类...... 93
6.4.4 使用内部类需要注意的问题...... 94
6.5 面向对象的其他特性...... 94
6.5.1 包结构...... 94
6.5.2 所有类的父类Object类...... 95
6.6 实战练习...... 95
第7章 Java异常处理机制...... 99
7.1 异常类的层次结构...... 99
7.2 如何捕获异常...... 100
7.3 如何抛出异常...... 101
7.4 自定义异常...... 103
7.5 使用finally语句段...... 105
第8章 Java反射机制...... 107
8.1 什么是反射机制...... 107
8.2 获得类的描述信息...... 107
8.2.1 Class类概述...... 107
8.2.2 获得类的构造方法...... 109
8.2.3 获得类的成员方法...... 110
8.2.4 获得类的成员变量...... 112
8.3 动态使用反射机制...... 113
8.3.1 运行时创建对象...... 113
8.3.2 动态调用指定方法...... 115
8.3.3 动态改变成员变量...... 117
第9章 数据结构与集合类...... 119
9.1 数组...... 119
9.1.1 数组的创建...... 119
9.1.2 用数组保存对象...... 122
9.1.3 数组的排序...... 124
9.1.4 二维数组...... 125
9.2 集合类...... 127
9.2.1 集合类的结构层次...... 127
9.2.2 常用集合类List的使用...... 128
9.2.3 常用集合类Vector的使用...... 130
9.2.4 常用集合类Map概述...... 132
9.2.5 常用集合类Hashtable的使用...... 135
第3篇 图形用户界面(GUI)
第10章 Java Swing(上)...... 139
10.1 概述...... 139
10.1.1 发展历史...... 139
10.1.2 什么是Swing... 139
10.1.3 JFC与Swing的关系...... 139
10.1.4 类层次结构...... 140
10.2 窗口与面板...... 140
10.2.1 顶级容器概述...... 140
10.2.2 JFrame主窗口...... 140
10.2.3 JDialog对话框窗口...... 142
10.2.4 JPanel面板的使用...... 144
10.3 常用的组件...... 145
10.3.1 按钮...... 146
10.3.2 文本组件...... 147
10.3.3 单选按钮JRadioButton... 155
10.3.4 复选框JCheckBox... 157
10.3.5 下拉列表JComboBox... 159
10.3.6 滑块JSlider.. 161
10.3.7 进度条JProgressBar及Timer组件...... 164
10.3.8 菜单JMenu... 167
10.3.9 工具栏JToolBar.. 172
10.4 布局管理器...... 174
10.4.1 概述...... 175
10.4.2 边框布局BorderLayout. 175
10.4.3 流动布局FlowLayout. 176
10.4.4 卡片布局CardLayout. 177
10.4.5 网格布局GridLayout. 179
10.4.6 使用绝对定位...... 181
第11章 Java Swing(下)...... 183
11.1 Java事件处理机制...... 183
11.1.1 事件处理模型...... 183
11.1.2 为组件注册事件...... 184
11.1.3 为按钮添加点击事件...... 184
11.2 常见的事件处理...... 187
11.2.1 鼠标事件...... 187
11.2.2 鼠标移动事件...... 190
11.2.3 选项事件...... 191
11.2.4 窗口事件...... 194
11.2.5 键盘事件...... 196
11.3 高级组件...... 198
11.3.1 表格组件概述...... 198
11.3.2 表格组件的使用...... 198
11.3.3 树的概述...... 201
11.3.4 树的使用...... 202
11.3.5 选项卡面板...... 205
11.3.6 颜色选择器...... 206
11.3.7 文件选择器...... 208
11.3.8 分隔面板...... 210
第12章 Applet网页小程序...... 213
12.1 Applet概述...... 213
12.1.1 Applet的基本工作原理...... 213
12.1.2 如何在网页中嵌入Applet. 213
12.1.3 Applet的安全性...... 215
12.2 Applet的生命周期和6种基本方法...... 216
12.3 向Applet传递参数...... 217
12.4 Applet综合示例...... 219
12.4.1 使用Applet显示当前日期及时间...... 219
12.4.2 使用Applet实现计算器功能...... 220
第13章 图形编程...... 225
13.1 图形对象(Graphics)概述...... 225
13.2 如何画各类图形...... 227
13.2.1 在Applet界面中绘制图形...... 227
13.2.2 在JFrame窗口界面中绘制图形...... 229
13.2.3 在JPanel面板界面中绘制图形...... 230
13.2.4 多边形的绘制...... 231
13.2.5 使用Color类来设置颜色...... 232
13.3 如何显示图像...... 234
13.4 Java 2D图形...... 236
13.4.1 Java2D概述...... 236
13.4.2 画直线...... 236
13.4.3 画圆形...... 238
13.4.4 画矩形...... 239
13.4.5 画圆角矩形...... 240
13.4.6 字体控制...... 241
第14章 多媒体编程...... 245
14.1 图像处理...... 245
14.1.1 在Applet小应用程序中显示图像...... 245
14.1.2 在application应用程序中显示图像...... 247
14.2 动画处理...... 249
14.3 声音处理...... 252
14.3.1 声音处理概述...... 252
14.3.2 使用Applet来处理声音文件...... 252
14.3.3 在应用程序application中处理MIDI声音文件...... 253
14.3.4 实现简单的音乐播放器...... 254
第4篇 Java高级技术
第15章 字符串处理...... 259
15.1 字符串对象String类...... 259
15.1.1 String类常用方法...... 259
15.1.2 查找指定字符串...... 263
15.1.3 转化字符串的大小写...... 264
15.2 改进的String对象StringBuffer类...... 264
15.2.1 StringBuffer类的创建和使用...... 265
15.2.2 StringBuffer类的插入和删除操作...... 267
15.3 StringTokenizer类...... 268
15.4 格式化文本...... 270
15.4.1 格式化日期...... 270
15.4.2 格式化数字...... 271
15.5 正则表达式...... 273
第16章 I/O输入输出流...... 277
16.1 流概述...... 277
16.1.1 什么是流...... 277
16.1.2 输入输出类结构...... 277
16.1.3 使用输入流来读取指定目录下文件的内容...... 279
16.1.4 使用输入输出流来读取并显示文件内容...... 280
16.1.5 使用read方法读取文件内容...... 281
16.1.6 两种“程序接收用户数据输入”方法的实现...... 282
16.2 文件类(File)的使用...... 283
16.2.1 获取指定文件的描述信息...... 284
16.2.2 创建新文件...... 285
16.2.3 文件改名及文件删除...... 286
16.2.4 获取指定文件目录下的所有文件...... 288
16.3 读取文件...... 289
16.3.1 读取文件并显示...... 289
16.3.2 读取文件的分类及所涉及到的类...... 291
16.3.3 读取文件Reader类的基本方法...... 293
16.4 写入文件...... 293
16.4.1 将输入的文本保存到文件示例...... 293
16.4.2 写入文件的分类及所涉及到的类...... 295
16.4.3 写入文件Writer类的基本方法...... 295
16.5 随机访问文件...... 295
16.5.1 RandomAccessFile流的构造及内部方法...... 295
16.5.2 使用随机访问文件流来对文件进行读写...... 296
16.6 创建压缩文件...... 297
16.6.1 ZipFile文件压缩类概述...... 298
16.6.2 实现数据文件以“zip方式”压缩的方法...... 298
16.6.3 将.class文件打包成jar文件...... 301
第17章 线程...... 303
17.1 线程概述...... 303
17.1.1 线程的生命周期...... 303
17.1.2 Thread线程类的成员变量及基本方法...... 304
17.2 创建线程的两种方式...... 305
17.2.1 继承Thread类并覆盖run()方法...... 305
17.2.2 实现Runnable接口...... 307
17.2.3 使用线程的小程序...... 308
17.3 线程的启动与停止...... 312
17.4 线程的优先级...... 312
17.5 线程的同步...... 315
17.6 综合实例——使用多线程实现动画效果...... 316
17.6.1 主类代码Pete.java.. 316
17.6.2 辅助类代码PetePanel.java.. 318
17.6.3 辅助类代码TextPanel.java.. 321
17.6.4 程序的编译、运行及结果...... 324
第18章 网络程序设计...... 327
18.1 网络通讯概述...... 327
18.1.1 什么是网络通讯...... 327
18.1.2 网络协议基础...... 327
18.1.3 Java中所涉及到的网络应用类...... 328
18.2 使用URL类...... 328
18.2.1 URL类中常用的方法...... 328
18.2.2 使用URLConnetion类...... 330
18.2.3 简单的网页浏览器...... 331
18.3 使用InetAddress类获取IP地址...... 333
18.4 使用套接字Socket类...... 334
18.4.1 Socket类与ServerSocket类...... 334
18.4.2 建立与服务器的连接...... 336
18.5 使用套接字Datagram类...... 340
18.5.1 Datagram(数据报)套接字...... 340
18.5.2 使用Datagram实现数据传输...... 341
18.6 创建聊天室程序...... 343
18.6.1 聊天室基本原理...... 343
18.6.2 客户端程序...... 344
18.6.3 服务器端程序...... 347
第19章 国际化和本地化...... 355
19.1 概述...... 355
19.1.1 Java的国际化考虑...... 355
19.1.2 什么是i18n和l10n... 355
19.2 获取本地化信息...... 356
19.2.1 如何获得本地化信息...... 356
19.2.2 本地化数字...... 358
19.2.3 本地化日期...... 360
19.3 使用ResouceBundle类...... 361
19.3.1 创建多语言的.Properties文件...... 362
19.3.2 使用ResouceBundle类获取.Properties文件信息...... 362
19.4 实现可选择不同语言的窗口程序...... 363
第20章 泛型程序设计...... 367
20.1 泛型概述...... 367
20.1.1 Java的新特性——泛型...... 367
20.1.2 一个泛型的小示例...... 367
20.2 定义泛型...... 369
20.3 使用泛型...... 370
20.4 使用泛型所注意的问题...... 372
20.5 使用通配类型...... 373
20.6 泛型接口...... 375
第21章 访问数据库...... 379
21.1 使用JDBC连接数据库...... 379
21.1.1 JDBC的作用及主要接口...... 379
21.1.2 连接不同数据库...... 381
21.1.3 连接数据库的基本步骤...... 382
21.2 执行SQL语句...... 385
21.2.1 使用PreparedStatement接口执行SQL语句...... 385
21.2.2 使用CallableStatement接口执行SQL语句...... 387
21.3 安装及配置MySQL数据库...... 388
21.3.1 安装MySQL 5.0数据库...... 388
21.3.2 配置MySQL 5.0数据库...... 390
21.3.3 创建数据库test及数据表userinfo... 391
21.4 通过JDBC访问MySQL数据库...... 392
21.4.1 查询数据...... 393
21.4.2 添加、删除及修改数据...... 397
第22章 获取XML数据...... 401
22.1 XML概述...... 401
22.1.1 什么是XML... 401
22.1.2 XML的命名空间...... 402
22.1.3 XML文档结构...... 403
22.2 XML的解析...... 404
22.2.1 DOM处理...... 404
22.2.2 SAX处理...... 406
22.3 使用Java处理XML数据...... 409
22.3.1 使用JDOM来生成XML文档...... 409
22.3.2 使用JDOM来处理XML文档...... 414
第23章 处理电子邮件...... 419
23.1 JavaMail 概述...... 419
23.1.1 JavaMail技术简介...... 419
23.1.2 体系结构...... 420
23.1.3 主要对象介绍...... 420
23.2 电子邮件协议概述...... 422
23.2.1 SMTP协议...... 422
23.2.2 POP3协议...... 423
23.2.3 IMAP协议...... 423
23.2.4 MIME协议...... 423
23.3 邮件处理...... 423
23.3.1 发送邮件...... 423
23.3.2 读取邮件...... 426
23.3.3 邮件的回复和转发...... 429
第24章 JSP技术应用...... 431
24.1 JSP概述...... 431
24.2 下载和安装Tomcat. 432
24.2.1 Tomcat容器介绍...... 432
24.2.2 Tomcat的下载...... 432
24.2.3 Tomcat的安装...... 433
24.2.4 服务器的启动...... 435
24.2.5 第一个JSP程序...... 435
24.3 JSP语法...... 437
24.3.1 JSP指令...... 437
24.3.2 JSP注释...... 437
24.3.3 JSP声明...... 438
24.3.4 表达式...... 439
24.3.5 脚本代码...... 440
24.3.6 JSP中使用Java脚本实例1... 440
24.3.7 JSP中使用Java脚本实例2... 441
24.4 JSP的内置对象...... 442
24.4.1 request对象——获取信息...... 442
24.4.2 response对象——发送信息...... 443
24.4.3 session对象——保存用户信息...... 443
24.4.4 application对象——保存公共信息...... 444
24.5 Servlet技术与JavaBean... 444
24.5.1 Servlet技术...... 445
24.5.2 JavaBean... 446
24.5.3 使用JSP/Servlet结构实现用户登录的验证...... 447
第5篇 综 合 案 例
第25章 汉诺塔游戏...... 457
25.1 游戏规划...... 457
25.2 程序预览...... 458
25.3 游戏设计分析...... 459
25.4 游戏流程...... 462
25.5 游戏编程技巧...... 462
25.6 程序代码分析...... 463
25.6.1 程序主类MainFrame.java.. 463
25.6.2 绘图类程序DrawPanel.java.. 470
25.6.3 盘子类程序SuperPlate.java.. 475
25.6.4 帮助信息类程序“帮助信息.java”.. 475
25.6.5 创建及编写...... 476
第26章 学生成绩查询系统...... 479
26.1 系统结构...... 479
26.2 系统数据库层...... 480
26.3 程序预览...... 483
26.4 视图(View)模块——前台JSP页面...... 484
26.4.1 学号输入页面main.jsp... 484
26.4.2 错误信息页面errorpage.jsp... 485
26.4.3 学生成绩显示页面markshow.jsp... 486
26.5 模型(Model)模块——JavaBean和实用类...... 488
26.5.1 用于保存学生信息的实体JavaBean——Student学生类...... 488
26.5.2 保存学生成绩信息的实体JavaBean——Course课程类...... 489
26.5.3 用于连接数据库的JavaBean——DataBase数据库连接类...... 490
26.5.4 用于查询学生信息的JavaBean——MarkDB数据查询类...... 491
26.6 控制器(Controller)模块——Servlet控制器...... 492
26.7 学生成绩查询系统的发布...... 493
第27章 网上用户注册系统...... 495
27.1 网上用户注册系统结构...... 495
27.2 数据库层...... 496
27.3 程序预览...... 498
27.4 视图(View)模块——前台JSP页面...... 499
27.4.1 用户登录页面login.jsp... 499
27.4.2 用户注册页面register.jsp... 500
27.4.3 显示用户信息页面showinfo.jsp... 503
27.4.4 出错信息页面errorpage.jsp... 504
27.5 模型(Model)模块——JavaBean... 505
27.5.1 保存用户信息的实体JavaBean——InfoItem用户信息类...... 505
27.5.2 用于连接数据库的JavaBean——DataBase数据库连接类...... 507
27.5.3 操作数据库的JavaBean-DBUtility.java数据操作类...... 508
27.6 控制器(Controller)模块——Servlet. 509
27.7 网上用户注册系统的发布...... 512
附录A Java关键字和运算符...... 515
附录B Java常用类...... 517
附录C Java流参考...... 521
附录D 常见术语表...... 527






