标题：JavaSE程序设计高级教程
图书信息
书名：Java SE程序设计高级教程
作者：青岛东合信息技术有限公司，青岛海尔软件有限公司 编著  　　ISBN 978-7-121-11268-3
出版日期：2010年8月 
定价：46.00元
开本：16开 
页码：336页
内 容 简 介
本书重点突出、偏重应用，结合理论篇的实例和实践篇对贯穿案例的讲解、剖析及实现，使读者能迅速理解并掌握知识，全面提高动手能力。
本书适应面广，可作为本科计算机科学与技术、软件外包专业、高职高专计算机软件、计算机网络、计算机信息管理、电子商务和经济管理等专业的程序设计课程的教材。
前  言
随着IT产业的迅猛发展，企业对应用型人才的需求越来越大。“全面贴近企业需求，无缝打造专业实用人才”是目前高校计算机专业教育的革新方向。
该系列教材是面向高等院校软件专业方向的标准化教材。本教材充分结合软件企业的用人需求，经过了充分的调研和论证，并参照多所高校一线专家的意见，具有系统性、实用性等特点。旨在使读者在系统掌握软件开发知识的同时，着重培养其综合应用能力和解决问题的能力。
该系列教材具有如下几个特色。
1. 以应用型人才为导向来培养学生
强调实践：本系列教材以应用型软件及外包人才为培养目标，在原有体制教育的基础上对课程进行了改革，强化“应用型”技术的学习。使学生在经过系统、完整的学习后能够达到如下要求：
具备软件开发工作所需的理论知识和操作技能，能熟练进行编码工作，并掌握软件开发过程的规范；
具备一定的项目经验，包括代码的调试、文档编写和软件测试等内容；
相当于一年的软件开发经验。
2. 以实用技能为核心来组织教学
二八原则：遵循企业生产过程中的“二八原则”，即企业生产过程中80%的时间在使用20%的核心技术，强调核心教学，即学生在学校用80%的学习时间来掌握企业中所用到的核心技术，从而保证对企业常用技术的掌握。教材内容精而专，同时配以知识拓展和拓展练习，以满足不同层次的教学和学习需求。
3. 以新颖的教材架构来引导学习
自成体系：本系列教材采用的教材架构打破了传统的以知识为标准编写教材的方法，采用“全真案例”和“任务驱动”的组织模式。
理论篇：即最小教学集，包含了“二八原则”中提到的常用技术，以任务驱动引导知识点的学习，所选任务不但典型、实用，而且具有很强的趣味性和可操作性，引导学生循序渐进地理解和掌握这些知识和技能，培养学生的逻辑思维能力，掌握利用开发语言进行程序设计的必备知识和技巧。
实践篇：多点于一线，以完整的具体案例贯穿始终，力求使学生在动手实践的过程中，加深课程内容的理解，培养学生独立思考和解决问题的能力，并配备相关知识的拓展讲解和拓展练习，拓宽学生的知识面。
结构灵活：本系列教材在内容设置上借鉴了软件开发中“低耦合高内聚”的设计理念，组织架构上遵循软件开发中的MVC理念，即在课程的实施过程中各高校可根据自身的实际情况（课程配比、时间安排、学生水平、教学情况等），在保证最小教学集的前提下对整个课程体系进行横向（章节内容）和纵向（章节）的裁剪。
4. 提供全面的教辅产品来辅助教学实施
为充分体现“实境耦合”的教学模式，方便教学实施，我们另外还开发了可配套使用的项目实训教材和全套教辅产品，可供各院校选购：
项目篇：多线于一面，以辅助教材的形式，提供适应当前课程（及先行课程）的综合项目，遵循软件开发过程，进行讲解、分析、设计、指导，注重工作过程的系统性，培养学生解决实际问题的能力，是实施“实境”教学的关键环节。
立体配套：为适应教学模式和教学方法的改革，本系列教材提供完备的教辅产品，主要包括教学指导、实验指导、电子课件、习题集、实践案例等内容，并配以相应的网络教学资源。教学实施方面，提供全方位的解决方案（课程体系解决方案、实训解决方案、教师培训解决方案和就业指导解决方案等），以适应软件开发教学过程的特殊性。
本系列教材由青岛海尔软件有限公司和青岛东合信息技术有限公司共同研制，历时两年，参与编著的有张磊、丁春强、赵克玲、高峰、张旭平、孙更新、宾晟、胡芳、侯天超、邵峰晶、于忠清、韩敬海、曹宝香、崔文善、肖孟强等。本书的特约策划人为吕蕾女士。参与本书编写工作的单位还有：青岛农业大学、潍坊学院、青岛大学、山东科技大学、曲阜师范大学、济宁学院、中国海洋大学、青岛科技大学、济宁医学院等高校，期间得到了各合作院校专家及一线教师的大力支持和协作。在此技术丛书出版之际要特别感谢给予我们开发团队大力支持和帮助的领导及同事，感谢合作院校的师生给予我们的支持和鼓励，更要感谢开发团队每一位成员所付出的艰辛劳动。如有意见及建议，请发邮件。
iTeacher@ 教研组
2010年7月
目  录
理论篇 1
第1章  线程 2
1.1  线程基础 4
1.1.1  线程概述 4
1.1.2  Java线程模型 4
1.2  线程使用 5
1.2.1  创建线程 5
1.2.2  线程状态 8
1.2.3  线程优先级 12
1.2.4  线程组 14
1.3  多线程 15
1.3.1  多线程概述 15
1.3.2  线程同步 16
1.3.3  线程通信 19
1.3.4  死锁 22
小结 24
练习 25
第2章  网络编程 26
2.1  网络基础 28
2.1.1  网络类型 28
2.1.2  TCP/IP协议 28
2.1.3  IP地址 30
2.1.4  端口 31
2.1.5  域名与DNS 31
2.2  网络API 32
2.2.1  InetAddress类 32
2.2.2  URL类 34
2.2.3  URLConnection类 36
2.3  基于TCP的网络编程 37
2.3.1  Socket类 38
2.3.2  ServerSocket类 39
2.3.3  C/S实例 40
2.3.4  多线程Socket通信 43
小结 45
练习 45
第3章  Swing图形界面（1） 47
3.1  Swing概述 49
3.1.1  Swing简介 49
3.1.2  Swing的结构 49
3.2 容器 50
3.2.1  顶层容器 50
3.2.2  中间容器 52
3.3  布局 53
3.3.1  FlowLayout 53
3.3.2  BorderLayout 55
3.3.3  GridLayout 56
3.3.4  CardLayout 58
3.3.5  NULL布局 60
3.4  Swing常用组件 61
3.4.1  按钮 61
3.4.2  标签 62
3.4.3  图标 62
3.4.4  文本组件 63
3.4.5  复选框 64
3.4.6  单选按钮 65
3.4.7  列表框 66
3.4.8  组合框 67
3.5  Swing组件示例 67
3.5.1  登录界面 67
3.5.2  注册界面 68
小结 71
练习 72
第4章  事件处理 73
4.1  事件概述 75
4.1.1  Java事件处理机制 75
4.1.2  事件处理要点 75
4.1.3  Java事件体系结构 76
4.2  事件处理 76
4.2.1  事件类 76
4.2.2  监听接口 77
4.3  事件示例 78
4.3.1  行为事件处理示例 78
4.3.2  选项事件处理示例 80
4.3.3  键盘事件处理 82
4.3.4  鼠标事件处理 84
4.4  适配器 85
4.5  多事件处理 87
小结 90
练习 90
第5章  Swing图形界面（2） 92
5.1  菜单 94
5.1.1  菜单栏（JMenuBar） 94
5.1.2  菜单（JMenu） 94
5.1.3  菜单项（JMenuItem） 94
5.1.4  菜单示例 95
5.1.5  弹出式菜单 97
5.2  工具栏 99
5.3  对话框 100
5.3.1  标准对话框 100
5.3.2  对话框 104
5.3.3  文件对话框 107
5.3.4  颜色对话框 111
5.4  JTable类 114
5.4.1  表格 114
5.4.2  表格模型 115
5.4.3  表格列模型 115
5.4.4  表格选择模式 116
5.5  JTree类 119
5.5.1  树 119
5.5.2  树模型 120
5.5.3  树节点 120
5.5.4  树事件 121
小结 124
练习 124
第6章  JDBC 125
6.1  JDBC基础 127
6.1.1  JDBC概述 127
6.1.2  JDBC结构 127
6.1.3  JDBC类型 128
6.1.4  JDBC与ODBC 129
6.2  访问数据库 130
6.2.1  连接数据库 131
6.2.2  连接实例 134
6.3  操作数据库 136
6.3.1  Statement接口 136
6.3.2  PreparedStatement接口 140
6.3.3  CallableStatement接口 142
6.4  集元数据 145
6.4.1  DatabaseMetaData接口 145
6.4.2  ResultSetMetaData接口 147
6.5  事务操作 148
6.5.1  事务 148
6.5.2  保存点 150
小结 151
练习 152
第7章  RMI 153
7.1  RMI概述 155
7.1.1  分布式对象 155
7.1.2  RMI 156
7.1.3  RMI机制原理 157
7.2  开发RMI 158
7.2.1  定义远程接口 158
7.2.2  实现远程接口 159
7.2.3  编写服务器类 160
7.2.4  编写客户端 161
7.2.5  部署运行 162
7.2.6  注意事项 164
小结 164
练习 165
第8章  国际化 167
8.1  国际化和本地化 169
8.1.1  国际化概述 169
8.1.2  Locale类 170
8.2  格式化处理 173
8.2.1  数字格式化 173
8.2.2  货币格式化 175
8.2.3  日期格式化 175
8.3  资源包 179
8.3.1  ListResourceBundle 180
8.3.2  PropertyResourceBundle 182
8.4  消息格式化 183
8.5  字符集 186
小结 187
练习 188
第9章  正则表达式 189
9.1  正则表达式 191
9.1.1  正则表达式概述 191
9.1.2  模式 191
9.1.3  常用正则表达式 195
9.2  在Java中应用正则表达式 196
9.2.1  Pattern类 197
9.2.2  Matcher类 198
9.2.3  应用实例 201
小结 205
练习 206
实践篇 207
实践1  线程 208
实践指导 208
实践1.G.1 208
实践1.G.2 211
实践1.G.3 213
知识拓展 217
1. 定时器 217
2.  ThreadLocal 218
拓展练习 220
练习1.E.1 220
练习1.E.2 220
实践2  网络编程 221
实践指导 221
实践2.G.1 221
实践2.G.2 224
实践2.G.3 227
知识拓展 230
1. 基于UDP的网络编程 230
2. 基于UDP的组播通信 233
拓展练习 236
练习2.E.1 236
实践3  Swing图形界面（1） 237
实践指导 237
实践3.G.1 237
实践3.G.2 238
实践3.G.3 242
实践3.G.4 244
知识拓展 246
1.  JSplitPane 246
2.  JScrollPane 247
拓展练习 249
练习3.E.1 249
练习3.E.2 249
实践4  事件处理 250
实践指导 250
实践4.G.1 250
实践4.G.2 253
实践4.G.3 258
知识拓展 266
1.  AdjustmentListener 266
2. 人物眼球转动 268
拓展练习 269
练习4.E.1 269
练习4.E.2 269
实践5  Swing图形界面（2） 270
实践指导 270
实践5.G.1 270
实践5.G.2 273
实践5.G.3 276
实践5.G.4 281
知识拓展 291
1. 2D绘图 291
拓展练习 293
练习5.E.1 293
实践6  JDBC 294
实践指导 294
实践6.G.1 294
实践6.G.2 296
知识拓展 301
1. 可滚动和可更新的结果集 301
2. 操作BLOB/CLOB数据 304
3. 批处理 307
4. 使用JDBC连接不同的数据库 309
拓展练习 310
练习6.E.1 310
练习6.E.2 310
实践7  RMI 311
实践指导 311
实践7.G.1 311
知识拓展 317
1.  CORBA技术 317
2.  SOAP 319
拓展练习 320
练习7.E.1 320
练习7.E.2 320
附录A  正则表达式元字符 321