标题：JavaSE程序设计基础教程
图书信息
书名：Java SE程序设计基础教程
作者：青岛东合信息技术有限公司，青岛海尔软件有限公司 编著  　　ISBN 978-7-121-11274-4
出版日期：2010年8月 
定价：46.00元
开本：16开 
页码：356页
内 容 简 介
本书重点突出、偏重应用，结合理论篇的实例和实践篇对贯穿案例的讲解、剖析及实现，使读者能迅速理解并掌握知识，全面提高动手能力。
本书适用面广，可作为本科计算机科学与技术、软件外包专业、高职高专计算机软件、计算机网络、计算机信息管理、电子商务和经济管理等专业的程序设计课程的教材。
前  言
随着IT产业的迅猛发展，企业对应用型人才的需求越来越大。“全面贴近企业需求，无缝打造专业实用人才”是目前高校计算机专业教育的革新方向。
该系列教材是面向高等院校软件专业方向的标准化教材。教材研发充分结合软件企业的用人需求，经过了充分的调研和论证，并充分参照多所高校一线专家的意见，具有系统性、实用性等特点。旨在使读者在系统掌握软件开发知识的同时，着重培养其综合应用能力和解决问题的能力。
该系列教材具有如下几个特色。
1. 以应用型人才为导向来培养学生
强调实践：本系列教材以应用型软件及外包人才为培养目标，在原有体制教育的基础上对课程进行了改革，强化“应用型”技术的学习。使学生在经过系统、完整的学习后能够达到如下要求：
具备软件开发工作所需的理论知识和操作技能，能熟练地进行编码工作，并掌握软件开发过程的规范。
具备一定的项目经验，包括代码的调试、文档编写、软件测试等内容。
相当于一年的软件开发经验。
2. 以实用技能为核心来组织教学
二八原则：遵循企业生产过程中的“二八原则”，即企业生产过程中80%的时间在使用20%的核心技术，强调核心教学，即学生在学校用80%的学习时间来掌握企业中所用到的核心技术，从而保证对企业常用技术的掌握。教材内容精而专，同时配以知识拓展和拓展练习，以满足不同层次的教学和学习需求。
3. 以新颖的教材架构来引导学习
自成体系：本系列教材采用的教材架构打破了传统的以知识为标准编写教材的方法，采用“全真案例”和“任务驱动”的组织模式。
理论篇：即最小教学集，包含了“二八原则”中提到的常用技术，以任务驱动引导知识点的学习，所选任务不但典型、实用，而且具有很强的趣味性和可操作性，引导学生循序渐进地理解和掌握这些知识和技能，培养学生的逻辑思维能力，掌握利用开发语言进行程序设计的必备知识和技巧。
实践篇：多点于一线，以完整的具体案例贯穿始终，力求使学生在动手实践的过程中，加深课程内容的理解，培养学生独立思考和解决问题的能力，并配备相关知识的拓展讲解和拓展练习，拓宽学生的知识面。
结构灵活：本系列教材在内容设置上借鉴了软件开发中“低耦合高内聚”的设计理念，组织架构上遵循软件开发中的MVC理念，即在课程的实施过程中各高校可根据自身的实际情况（课程配比、时间安排、学生水平、教学情况等），在保证最小教学集的前提下可对整个课程体系进行横向（章节内容）、纵向（章节）裁剪。
4. 提供全面的教辅产品来辅助教学实施
为充分体现“实境耦合”的教学模式，方便教学实施，另外还开发了可配套使用的项目实训教材和全套教辅产品，可供各院校选购：
项目篇：多线于一面，以辅助教材的形式，提供适应当前课程（及先行课程）的综合项目，遵循软件开发过程，进行讲解、分析、设计、指导，注重工作过程的系统性，培养学生解决实际问题的能力，是实施“实境”教学的关键环节。
立体配套：为适应教学模式和教学方法的改革，本系列教材提供完备的教辅产品，主要包括教学指导、实验指导、电子课件、习题集、实践案例等内容，并配以相应的网络教学资源。教学实施方面，提供全方位的解决方案（课程体系解决方案、实训解决方案、教师培训解决方案和就业指导解决方案等），以适应软件开发教学过程的特殊性。
本系列教材由青岛海尔软件有限公司和青岛东合信息技术有限公司共同研制，历时两年，参与编著的有张磊、丁春强、赵克玲、高峰、张旭平、孙更新、宾晟、胡芳、侯天超、邵峰晶、于忠清、韩敬海、曹宝香、崔文善、肖孟强等。本书的特约策划人为吕蕾女士。参与本书编写工作的还有：青岛农业大学、潍坊学院、青岛大学、山东科技大学、曲阜师范大学、济宁学院、中国海洋大学、青岛科技大学、济宁医学院等高校，期间得到了各合作院校专家及一线教师的大力支持和协作。在此技术丛书出版之际要特别感谢给予我们开发团队大力支持和帮助的领导及同事，感谢合作院校的师生给予我们的支持和鼓励，更要感谢开发团队每一位成员所付出的艰辛劳动。如有意见及建议，请发邮件。
iTeacher@ 教研组
2010年7月
目  录
理论篇 1
第1章  Java概述 2
1.2  Java的特点 4
1.3  Java的体系结构 5
1.3.1  Java体系结构 6
1.3.2  Java程序类型 6
1.4  JVM、JRE和JDK 7
1.4.1  JVM 7
1.4.2  JRE与JDK 9
1.4.3  三者关系 9
1.5  第一个Java程序 10
1.6  Java注释 11
小结 12
练习 13
第2章  Java基础 14
2.1  常量和变量 16
2.1.1  标识符 16
2.1.2  分隔符 16
2.1.3  常量 17
2.1.4  变量 18
2.2  数据类型 18
2.2.1  基本数据类型 19
2.2.2  引用类型 20
2.2.3  类型转换 20
2.3  变量的作用域和初始化 22
2.3.1  变量作用域 22
2.3.2  变量初始化 23
2.4  运算符 23
2.4.1  算术运算符 23
2.4.2  比较运算符 24
2.4.3  逻辑运算符 25
2.4.4  位运算符 27
2.4.5  赋值运算符 29
2.4.6  条件运算符 30
2.4.7  运算符优先级 30
2.5  流程控制 31
2.5.1  分支结构 31
2.5.2  迭代结构 36
2.5.3  转移语句 41
小结 44
练习 45
第3章  数组 47
3.1  数组 49
3.2  一维数组 49
3.2.1  创建数组 49
3.2.2  数组初始化 52
3.2.3  使用数组 53
3.2.4  数组复制 53
3.3  数组与数据结构 55
3.3.1  数组排序 55
3.3.2  实现栈 56
3.3.3  实现队列 57
3.4  二维数组 59
3.4.1  创建二维数组 59
3.4.2  使用二维数组 60
小结 61
练习 62
第4章  类与对象 63
4.1  类 65
4.1.1  OOP概念 65
4.1.2  类的声明 66
4.1.3  构造方法 67
4.1.4  类的方法 69
4.1.5  Overload 70
4.2  对象 71
4.2.1  对象的创建 71
4.2.2  使用对象 72
4.2.3  对象参数 74
4.3  类的封装 76
4.3.1  包 76
4.3.2  访问修饰符 77
4.3.3  静态变量和方法 81
4.4  内部类 84
4.4.1  成员内部类 84
4.4.2  局部内部类 85
4.4.3  静态内部类 87
4.4.4  匿名内部类 88
小结 89
练习 89
第5章  继承与多态 91
5.1  继承与多态 93
5.1.1  继承 93
5.1.2  多态 96
5.1.3  this super null 98
5.1.4  final关键字 104
5.2  抽象类与接口 106
5.2.1  抽象类 106
5.2.2  接口 109
5.2.3  instanceof运算符 110
5.2.4  对象造型 112
5.3  Object类 113
5.3.1  equals方法 113
5.3.2  toString方法 115
小结 117
练习 118
第6章  异常 120
6.1 异常 122
6.1.1  异常概述 122
6.1.2  Java异常分类 122
6.1.3  Java异常处理机制 124
6.2  异常处理 124
6.2.1  异常实例 125
6.2.2  try、catch 125
6.2.3  多重catch处理异常 127
6.2.4  嵌套异常处理 129
6.2.5  finally 130
6.2.6  throw、throws 132
6.3  自定义异常 133
小结 135
练习 135
第7章  泛型 137
7.1  泛型概述 139
7.1.1  认识泛型 139
7.2  泛型定义 141
7.2.1  有界类 142
7.2.2  泛型接口 144
7.2.3  泛型方法 145
7.2.4  通配符 147
7.2.5  泛型的继承 148
7.3  泛型的局限性 150
小结 152
练习 152
第8章  集合 153
8.1  集合概述 155
8.1.1  集合框架 155
8.1.2  迭代器接口 158
8.2  集合类 159
8.2.1  List 159
8.2.2  Set 163
8.2.3  Map 166
8.2.4  区别与联系 168
小结 169
练习 169
第9章  流与文件 171
9.1  文件 173
9.1.1  File类 173
9.1.2  文件列表器 174
9.2  流的分类 177
9.3  字节流 178
9.3.1  InputStream 178
9.3.2  OutputStream 181
9.3.3  过滤流 183
9.4  字符流 185
9.4.1  Reader 186
9.4.2  Writer 188
9.5  对象流 190
9.5.1  对象序列化与反序列化 190
9.5.2  对象流 191
小结 194
练习 195
第10章  反射 197
10.1  类加载 199
10.1.1  认识Class 199
10.1.2  使用ClassLoader 201
10.1.3  使用instanceof 203
10.2  反射 204
10.2.1  Constructor类 205
10.2.2  Method类 207
10.2.3  Field类 208
小结 209
练习 210
第11章  枚举、自动装箱、注解 211
11.1  枚举 213
11.1.1  枚举定义 214
11.1.2  Java枚举是类类型 215
11.1.3  枚举继承自Enum 217
11.2  自动装箱/拆箱 218
11.3  注解 219
11.3.1  注解定义 220
11.3.2  使用注解 221
11.3.3  内置注解 223
小结 224
练习 224
实践篇 225
实践1  Java概述 226
实践指导 226
实践1.G.1 226
实践1.G.2 230
知识拓展 237
1．GUI Application应用 237
2．Web Applet应用 238
3．数据读取 240
拓展练习 242
练习1.E.1 242
实践2  Java基础 243
实践指导 243
实践2.G.1 243
实践2.G.2 243
实践2.G.3 244
知识拓展 245
1．Java编码规范 245
2．Math类 251
3．String类 253
拓展练习 255
练习2.E.1 255
练习2.E.2 255
实践3  数组 256
实践指导 256
实践3.G.1 256
实践3.G.2 257
知识拓展 258
1．Arrays类 258
2．命令行参数 260
3．for-each语句 261
4．Random类 262
拓展练习 263
练习3.E.1 263
练习3.E.2 263
实践4  类与对象 265
实践指导 265
实践4.G.1 265
实践4.G.2 266
实践4.G.3 267
实践4.G.4 270
知识拓展 273
1．静态块 273
2．Singleton设计模式 273
拓展练习 275
练习4.E.1 275
实践5  继承与多态 276
实践指导 276
实践5.G.1 276
知识拓展 279
1．Comparable接口 279
2．Cloneable接口 280
3．Template模式 280
拓展练习 282
练习5.E.1 282
实践6  异常 283
实践指导 283
实践6.G.1 283
知识拓展 285
1．日志记录 285
2．StringBuffer 287
3．StringBuilder 288
4．StringTokenizer 288
拓展练习 289
练习6.E.1 289
实践7  泛型 290
实践指导 290
实践7.G.1 290
知识拓展 291
1．泛型类在继承中的运行时 291
2．擦除 293
拓展练习 296
练习7.E.1 296
实践8  集合 297
实践指导 297
实践8.G.1 297
实践8.G.2 299
实践8.G.3 301
知识拓展 302
1．历史遗留 302
2．Properties 303
3．Collections 304
4．BitSet 305
拓展练习 307
练习8.E.1 307
实践9  流与文件 308
实践指导 308
实践9.G.1 308
实践9.G.2 309
实践9.G.3 314
知识拓展 316
1．Zip流 316
2．NIO 319
拓展练习 320
练习9.E.1 320
练习9.E.2 320
实践10  反射 321
实践指导 321
实践10.G.1 321
知识拓展 324
1．日期处理 324
2．Formatter类 328
拓展练习 330
练习10.E.1 330
实践11  枚举、自动装箱、注解 331
实践指导 331
实践11.G.1 331
实践11.G.2 332
知识拓展 334
1．自动装箱/拆箱 334
2．可变参数 335
拓展练习 336
练习11.E.1 336
附录A  Java关键字 337