标题：JAVA程序设计标准教程
图书信息
  书 名: Java程序设计标准教程
作　者：邱加永
出版社： 人民邮电出版社
出版时间： 2010年02月
ISBN: 9787115215413
开本： 16开
定价: 49.00 元
内容简介《Java程序设计标准教程》是Sun公司SCJP认证考试的指定用书。全书共13章。第1章全面系统地介绍了Java语言的发展史、特性、Java开发环境的搭建、Java程序的编写编译和运行过程以及Java开发常用IDE工具的使用。第2章详细讲解了Java语言的一些基本语法。第3章和第4章全面透彻地讲解了面向对象编程的思想和应用。第5章～第13章讲解了异常处理和断言、常用Java类、正则表达式、多线程技术、泛型和集合框架的使用、IO编程、网络编程、Swing编程、注解和反射等方面的知识。
《Java程序设计标准教程》结构清晰、语言生动，使用典型实用的示例代码和透彻的常见问题分析方法。《Java程序设计标准教程》除了作为Sun公司SCJP认证考试指定用书，还可作为高等院校相关专业或社会培训机构的教学用书，以及编程爱好者的自学用书。
内容介绍
  本书[1]从初学者的角度出发，通过通俗易懂的语言和大量生动典型的实例，由浅入深、循序渐进地介绍应用Java进行网络编程的常用技术和方法。全书共20章。第1章～第8章主要介绍搭建Java开发环境、开发工具Eclipse、Java语言基础、算法和程序控制结构语句、数组及其应用、字符串处理、面向对象编程和集合类及其应用等内容；第9章～第14章主要介绍异常处理、I/O处理技术、线程技术、JDBC技术、Java Swing等一些高级开发技术，并通过一个进销存管理系统对前面章节的内容进行了实践；第15章～第20章主要介绍JSP环境基础、JSP语法基础、JSP的内置对象、JavaBean技术和Servlet技术等Java Web领域的基础知识，最后通过一个博客网站介绍Java Web基础知识的综合应用。
本书附有配套光盘。光盘提供了书中实例的源代码，并经过精心调试，在Windows XP/Windows 2000/Windows 2003 Server下全部通过，保证能够正常运行。
本书适用于Java初、中级用户，也可作为大中院校师生和培训班的教材，对于网络编程爱好者，本书也有非常高的参考价值。
目录第1章　搭建Java开发环境　001
1.1　Java语言的产生与发展　002
1.2　Java语言的特点　002
1.3　搭建Java开发环境　003
1.3.1　下载JDK　003
1.3.2　安装JDK　006
1.3.3　Windows系统下配置和测试JDK　008
1.4　Java程序的开发过程　009
1.5　一个简单的Java应用程序　009
1.5.1　构建Java程序　010
1.5.2　编译和运行Java程序　010
1.5.3　使用Java核心API文档　011
1.6　本章小结　012
第2章　开发工具Eclipse　013
2.1　Eclipse的安装与启动　014
2.1.1　下载Eclipse　014
2.1.2　安装Eclipse中文包　016
2.1.3　启动Eclipse　019
2.2　Eclipse的工作台　020
2.2.1　Eclipse工作台概述　020
2.2.2　透视图　021
2.2.3　视图　022
2.2.4　编辑器　024
2.2.5　熟悉Eclipse的菜单栏和工具栏　025
2.3　编写Java程序　032
2.3.1　新建Java项目　032
2.3.2　新建Java类　033
2.3.3　编写Java代码　035
2.3.4　运行程序　036
2.3.5　保存并关闭Java项目　036
2.4　Eclipse资源管理　037
2.4.1　导入Java类　037
2.4.2　导入Java项目　038
2.4.3　导出Java项目　039
2.5　本章小结　040
第3章　Java语言基础　041
3.1　编码规范　042
3.1.1　Java命名规范　042
3.1.2　代码编写规则　042
3.1.3　Java程序的注释　043
3.2　常量与变量　044
3.2.1　常量的概念及使用　044
3.2.2　变量的概念及命名规则　044
3.2.3　变量的初始化及赋值　045
3.2.4　变量的有效范围　046
3.3　数据类型　048
3.3.1　基本数据类型　048
3.3.2　引用类型　053
3.3.3　基本类型与引用类型的区别　053
3.3.4　数据类型间的转换　055
3.4　运算符　061
3.4.1　赋值运算符　061
3.4.2　算术运算符　063
3.4.3　关系运算符　065
3.4.4　逻辑运算符　069
3.4.5　位运算符　071
3.4.6　字符串连接运算符　074
3.4.7　其他运算符　074
3.4.8　运算符的优先级别及结合性　076
3.5　了解Java标识符　077
3.6　本章小结　077
第4章　算法和流程控制语句　078
4.1　算法　079
4.1.1　什么是算法　079
4.1.2　算法的描述方法　079
4.1.3　程序3种控制结构　080
4.2　分支语句　082
4.2.1　简单的if条件语句　082
4.2.2　if...else条件语句　083
4.2.3　if...else if多分支语句　085
4.2.4　if语句的嵌套　087
4.2.5　switch多分支语句　089
4.2.6　if语句和switch语句的区别　092
4.3　循环语句　092
4.3.1　for循环语句　092
4.3.2　while循环语句　094
4.3.3　do...while循环语句　096
4.3.4　循环的嵌套　098
4.3.5　各循环语句间的区别　099
4.4　跳转语句　099
4.4.1　break跳转语句　100
4.4.2　continue跳转语句　101
4.4.3　return跳转语句　102
4.5　本章小结　102
第5章　数组　103
5.1　一维数组　104
5.1.1　声明一维数组　104
5.1.2　创建一维数组　104
5.1.3　初始化一维数组　105
5.1.4　使用一维数组　106
5.2　二维数组　107
5.2.1　声明二维数组　108
5.2.2　创建二维数组　108
5.2.3　初始化二维数组　109
5.2.4　使用二维数组　110
5.3　多维数组　111
5.3.1　声明多维数组　111
5.3.2　创建多维数组　111
5.3.3　初始化多维数组　111
5.3.4　使用多维数组　112
5.4　操作数组　112
5.4.1　复制数组　112
5.4.2　排序数组　113
5.4.3　比较数组　115
5.4.4　搜索数组　116
5.4.5　填充数组　117
5.4.6　传递数组　118
5.5　本章小结　119
第6章　字符串处理　120
6.1　字符串　121
6.1.1　字符串常量　121
6.1.2　声明字符串变量　121
6.1.3　创建字符串　121
6.2　连接字符串　123
6.2.1　字符串与字符串的连接　123
6.2.2　字符串与其他类型数据的连接　123
6.3　字符串操作　125
6.3.1　比较字符串　125
6.3.2　获取字符串的长度　127
6.3.3　字符串的大小写转换　127
6.3.4　查找字符串　127
6.3.5　获取字符串的子字符串　129
6.3.6　替换或去除字符串中的空格　129
6.3.7　分割字符串　130
6.4　格式化字符串　130
6.4.1　常规类型的格式化　130
6.4.2　日期和时间字符串格式化　133
6.5　使用StringBuilder类　136
6.5.1　创建字符串生成器　137
6.5.2　字符串生成器的应用　137
6.6　本章小结　139
第7章　面向对象编程　140
7.1　面向对象程序设计　141
7.1.1　面向对象程序设计的概述　141
7.1.2　面向对象程序设计的特点　141
7.2　类和对象　143
7.2.1　定义类　143
7.2.2　了解成员方法　144
7.2.3　成员变量和局部变量　145
7.2.4　构造方法的概念及用途　146
7.2.5　创建对象　147
7.2.6　使用对象　147
7.2.7　销毁对象　148
7.3　包　148
7.3.1　包的概念　149
7.3.2　创建包　149
7.3.3　使用包中的类　149
7.4　继承　150
7.4.1　继承的概念　150
7.4.2　子类对象的创建　150
7.4.3　继承的使用原则　150
7.4.4　使用this关键字　152
7.4.5　使用super关键字　152
7.5　多态　153
7.5.1　方法的重载　153
7.5.2　方法的覆盖　154
7.6　抽象类与final类　155
7.6.1　抽象类的概念及应用　155
7.6.2　final类的概念及应用　157
7.7　接口　158
7.7.1　定义接口　158
7.7.2　实现接口　158
7.8　本章小结　160
第8章　集合类　161
8.1　集合类概述　162
8.2　Collection接口　162
8.2.1　addAll(Collection? extends E col)方法　163
8.2.2　removeAll(Collection? col)方法　164
8.2.3　retainAll(Collection? col)方法　165
8.2.4　containsAll(Collection? col)方法　165
8.2.5　toArray(T[]t)方法　166
8.3　List集合　166
8.3.1　List集合的用法　166
8.3.2　使用ArrayList类　169
8.3.3　使用LinkedList类　170
8.3.4　客户化排序List集合　171
8.4　Set集合　174
8.4.1　使用HashSet类　175
8.4.2　使用TreeSet类　176
8.5　Map集合　179
8.5.1　Map集合的用法　180
8.5.2　使用HashMap类　181
8.5.3　使用TreeMap类　182
8.6　本章小结　184
第9章　异常处理　185
9.1　常见异常列表　186
9.2　Java异常处理　186
9.3　内置异常类　192
9.3.1　Error类　192
9.3.2　Exception类　193
9.4　自定义异常　194
9.5　异常处理使用原则　196
9.6　本章小结　197
第10章　I/O处理　198
10.1　Java的I/O处理方式　199
10.1.1　I/O的基本模式　199
10.1.2　Java提供的流类　199
10.2　以byte为数据单位的流类　201
10.2.1　InputStream类　201
10.2.2　OutputStream类　202
10.3　以char为数据单位的流类　203
10.3.1　Reader类　203
10.3.2　Writer类　204
10.4　常用I/O处理方式　205
10.4.1　文件类　205
10.4.2　文件的字节输入输出流　207
10.4.3　文件的字符输入输出流　209
10.4.4　对象序列化　211
10.5　对文件及文件夹进行操作　213
10.5.1　复制文件　213
10.5.2　复制文件夹　214
10.5.3　删除文件　215
10.5.4　分行写入文件　215
10.6　本章小结　216
第11章　线程　217
11.1　概述　218
11.1.1　进程　218
11.1.2　线程　218
11.2　线程的创建　219
11.2.1　线程的创建方式　219
11.2.2　继承Thread类　220
11.2.3　实现Runnable接口　222
11.2.4　两种创建线程方式的比较　223
11.3　线程的生命周期　223
11.4　线程的优先级及执行顺序　224
11.4.1　线程的优先级　224
11.4.2　线程的执行顺序　225
11.5　线程的控制　228
11.5.1　线程的启动　228
11.5.2　线程的挂起　228
11.5.3　线程状态检查　232
11.5.4　结束线程　233
11.5.5　后台线程　233
11.5.6　线程组　234
11.6　线程的同步　234
11.7　线程通信　237
11.8　多线程产生死锁　240
11.9　本章小结　241
第12章　JDBC技术　242
12.1　JDBC概述　243
12.1.1　JDBC-ODBC桥技术介绍　243
12.1.2　JDBC技术介绍　243
12.1.3　JDBC驱动类型　244
12.2　JDBC中的常用接口　245
12.2.1　Driver接口　245
12.2.2　DriverManager　245
12.2.3　Connection接口　245
12.2.4　Statement接口　246
12.2.5　PreparedStatement接口　246
12.2.6　CallableStatement接口　247
12.2.7　ResultSet接口　248
12.3　连接数据库　250
12.3.1　加载JDBC驱动程序　250
12.3.2　创建数据库连接　250
12.3.3　执行SQL语句　250
12.3.4　获得查询结果　251
12.3.5　关闭连接　251
12.4　操作数据库　251
12.4.1　添加数据　251
12.4.2　查询数据　253
12.4.3　修改数据　254
12.4.4　删除数据　255
12.5　应用JDBC事务　256
12.6　连接池技术　258
12.6.1　连接池简介　259
12.6.2　获得JNDI的名称实现对数据库的连接　259
12.7　本章小结　261
第13章　使用Java Swing　262
13.1　Swing概述　263
13.2　创建窗体　263
13.3　使用组件　265
13.3.1　JLabel(标签)组件　265
13.3.2　JButton(按钮)组件　266
13.3.3　JRadioButton(单选按钮)组件　268
13.3.4　JCheckBox(复选框)组件　269
13.3.5　JComboBox(选择框)组件　270
13.3.6　JList(列表框)组件　272
13.3.7　JTextField(文本框)组件　274
13.3.8　JPasswordField(密码框)组件　275
13.3.9　JTextArea(文本域)组件　276
13.4　常用布局管理器　277
13.4.1　不使用布局管理器　277
13.4.2　使用边界布局管理器　278
13.4.3　使用网格布局管理器　280
13.5　本章小结　282
第14章　进销存管理系统　283
14.1　需求分析　284
14.1.1　需求分析　284
14.1.2　可行性分析　284
14.2　系统设计　284
14.2.1　项目规划　284
14.2.2　功能结构分析　285
14.3　数据库设计　285
14.3.1　E-R图　285
14.3.2　数据表概要说明　287
14.3.3　主要数据表的结构　288
14.4　系统登录模块设计　290
14.4.1　登录功能设计　290
14.4.2　不规则登录窗体设计　290
14.5　程序主界面的设计　294
14.5.1　创建主窗口　294
14.5.2　初始化程序主界面的initialize()方法　295
14.5.3　添加菜单和工具按钮的方法　296
14.5.4　创建Action对象的addFrameAction()方法　298
14.5.5　获取功能窗体的getIFrame()方法　299
14.5.6　关于对话框的事件监听器　300
14.6　基础信息模块设计　301
14.6.1　商品信息管理模块设计　301
14.6.2　商品添加功能设计　301
14.6.3　设置组件布局位置的setupComponent()方法　304
14.6.4　商品修改与删除功能设计　304
14.7　进货管理模块设计　307
14.7.1　进货单功能设计　307
14.7.2　初始化表格的initTable()方法　310
14.7.3　初始化商品下拉选择框的initSpBox()方法　311
14.7.4　初始化进货单窗体的initTasks类　311
14.7.5　初始化进货票号文本框的initPiaoHao()方法　312
14.8　销售管理模块设计　313
14.8.1　销售单功能设计　313
14.8.2　初始化销售单窗体的initTasks类　314
14.9　库存管理模块设计　315
14.9.1　库存盘点功能设计　315
14.9.2　库存价格调整功能设计　318
14.10　查询统计模块设计　319
14.10.1　销售排行功能设计　319
14.10.2　执行销售排行功能的事件监听器　320
14.11　系统设置模块设计　321
14.11.1　操作员管理　321
14.11.2　权限管理　323
14.12　数据库模块　325
14.12.1　数据库连接　325
14.12.2　获取用户信息的getUser()方法　326
14.12.3　添加商品信息的addSp()方法　326
14.12.4　获取所有商品信息的getSpInfos()方法　327
14.12.5　添加入库信息的insertRukuInfo()方法　328
14.12.6　获取最大入库编号的getRuKuMainMaxId()方法　329
14.12.7　更新用户信息的updateUser()方法　329
14.13　本章小结　330
第15章　JSP入门　331
15.1　JSP技术概述　332
15.2　JSP技术特征　332
15.2.1　跨平台　332
15.2.2　静态内容和动态内容的分离　332
15.2.3　可重复使用的组件　333
15.2.4　沿用了JavaServlet的所有功能　333
15.2.5　预编译　333
15.3　JSP与其他网络编程语言的比较　333
15.3.1　CGI　333
15.3.2　ASP　333
15.3.3　PHP　334
15.3.4　JSP　334
15.4　JSP的处理过程　334
15.5　Tomcat服务器的安装和启动　335
15.5.1　Tomcat服务器的安装　335
15.5.2　Tomcat服务器的启动　336
15.6　开发与部署Web应用程序　336
15.6.1　MyEclipse开发Web应用程序　337
15.6.2　部署JSP程序　338
15.7　本章小结　339
第16章　JSP语法　340
16.1　了解JSP的基本构成　341
16.1.1　JSP中的指令标识　341
16.1.2　HTML标记语言　341
16.1.3　嵌入的Java代码片段　341
16.1.4　JSP表达式　341
16.2　JSP的指令标识　341
16.2.1　使用Page指令　342
16.2.2　使用include指令　344
16.2.3　使用taglib指令　345
16.3　JSP的脚本标识　345
16.3.1　JSP表达式(Expression)　345
16.3.2　声明标识(Declaration)　346
16.3.3　小脚本程序(Scriptlet)　347
16.4　JSP的注释　347
16.4.1　HTML中的注释　347
16.4.2　带有JSP表达式的注释　348
16.4.3　隐藏注释　348
16.4.4　小脚本程序(Scriptlet)中的注释　348
16.5　JSP的动作标识　350
16.5.1　包含文件的动作jsp:include　351
16.5.2　重定向资源的动作jsp:forward　352
16.5.3　声明使用JavaBean的动作jsp:useBean　354
16.5.4　设置JavaBean属性值的动作jsp:setProperty　360
16.5.5　获取JavaBean属性值的动作jsp:getProperty　362
16.5.6　声明使用Java插件的动作jsp:plugin　362
16.6　本章小结　363
第17章　JSP的内置对象　364
17.1　JSP内置对象的概述　365
17.2　request对象　366
17.2.1　访问请求参数　366
17.2.2　在作用域中管理属性　367
17.2.3　获取Cookie　368
17.2.4　访问HTTP报头　370
17.2.5　访问请求行元素　370
17.2.6　访问安全信息　371
17.2.7　访问国际化信息　371
17.3　response对象　372
17.3.1　重定向网页　372
17.3.2　处理HTTP文件报头　372
17.3.3　输出缓冲　373
17.4　session对象　374
17.4.1　创建及获取客户的会话　374
17.4.2　从会话中移动指定的绑定对象　374
17.4.3　销毁session　375
17.4.4　会话超时的管理　375
17.4.5　session对象的应用　375
17.5　application对象　377
17.5.1　访问应用程序初始化参数　377
17.5.2　管理应用程序环境属性　378
17.6　out对象　379
17.6.1　管理响应缓冲　379
17.6.2　向客户端输出数据　379
17.7　其他内置对象　379
17.7.1　获取会话范围的pageContext对象　379
17.7.2　读取web.xml配置信息的config对象　380
17.7.3　应答或请求的page对象　381
17.7.4　获取异常信息的exception对象　382
17.8　本章小结　383
第18章　JavaBean技术　384
18.1　JavaBean概述　385
18.1.1　JavaBean技术介绍　385
18.1.2　JavaBean的种类　385
18.1.3　JavaBean的形式和要素　385
18.2　JavaBean属性　386
18.2.1　使用Simple属性　387
18.2.2　使用Indexed属性　387
18.2.3　使用Bound属性　388
18.2.4　使用Constrained属性　388
18.3　JavaBean方法　388
18.4　JSP与JavaBean　389
18.4.1　JavaBean在JSP中的作用域　389
18.4.2　在JavaBean中连接数据库　395
18.4.3　JavaBean的移除　398
18.5　应用程序与JavaBean　399
18.5.1　可视化编程中的JavaBean简介　399
18.5.2　java.beans包　400
18.6　本章小结　405
第19章　Servlet技术　406
19.1　Servlet基础　407
19.1.1　Servlet技术简介　407
19.1.2　Servlet技术功能　407
19.1.3　Servlet技术特性　407
19.1.4　Servlet的生命周期　408
19.1.5　快速体验Servlet程序　409
19.2　Servlet API编程常用接口和类　410
19.2.1　Servlet编程接口　410
19.2.2　HttpServlet编程类　412
19.2.3　HttpServletRequest编程接口　415
19.2.4　HttpServletResponse编程接口　416
19.3　创建与配置Servlet　416
19.3.1　Servlet的创建　416
19.3.2　Servlet的配置　417
19.4　Servlet过滤器　419
19.4.1　Servlet过滤器简介　419
19.4.2　Servlet过滤器工作原理　420
19.4.3　Servlet过滤器编程接口　420
19.4.4　Servlet过滤器的配置　421
19.4.5　Servlet过滤器的典型实例　422
19.5　Servlet监听器　425
19.5.1　Servlet监听器简介　425
19.5.2　Servlet监听器的原理　426
19.5.3　Servlet上下文监听　426
19.5.4　HTTP会话监听　426
19.5.5　Servlet请求监听　427
19.5.6　Servlet监听器的典型应用　428
19.6　本章小结　430
第20章　博客网站　431
20.1　网站总体分析　432
20.1.1　项目规划　432
20.1.2　系统功能结构图　432
20.2　数据库设计　432
20.2.1　E-R图　432
20.2.2　数据表概要说明　434
20.2.3　主要数据表的结构　434
20.3　网站总体架构设计　436
20.3.1　文件架构设计　436
20.3.2　类的分布架构设计　436
20.3.3　页面效果图　436
20.4　系统配置　438
20.5　公共类的编写　439
20.5.1　数据库连接及操作类的编写　439
20.5.2　字符串处理类的编写　440
20.5.3　获取系统时间类的编写　441
20.5.4　实现分页操作类的编写　441
20.6　系统登录模块设计　443
20.6.1　页面设计　444
20.6.2　功能实现　444
20.7　用户注册模块设计　447
20.7.1　页面设计　448
20.7.2　功能实现　449
20.8　文章管理模块设计　450
20.8.1　文章类型管理　450
20.8.2　发表文章　454
20.8.3　修改文章　455
20.8.4　删除文章　457
20.9　相册管理模块设计　457
20.9.1　查看相册　457
20.9.2　相片上传　459
20.10　网络日历功能实现　462
20.11　本章小结　463
附录　实例快速检索　464
文摘
1.1 Java语言的产生与发展
Java语言是Sun公司于1990年开发的，当时Green项目小组的研究人员正在致力于为未来的智能设备开发出一种新的编程语言。由于该小组的成员James Gosling对C++语言在执行过程中的表现非常不满，于是把自己封闭在办公室里编写了一种新的语言，并将其命名为Oak（Oak即Java语言的前身），这个名称源于Gosling办公室的窗外正好有一棵橡树（Oal（）。这时的Oak已经具备安全性、网络通信、面向对象、多线程等特性，是一款相当优秀的程序语言。后来，在注册Oak商标时，发现它已经被另外一家公司注册，因此不得不改名。取什么名字呢，工程师们边喝咖啡边讨论着，看看手上的咖啡，再想到印度尼西亚有一个盛产咖啡的岛屿（中文名叫爪哇），于是将其改名为Java。
随着Internet的迅速发展，Web的应用日益广泛，Java语言也得到了迅速发展。1994年，Gosling用Java语言开发了一个实时性较高、可靠、安全、有交互功能的新型Web浏览器，它不依赖于任何硬件平台和软件平台。这种浏览器的名称为HotJava，并于1995年在业界发表，引起了巨大的轰动，Java语言的地位随之得到肯定。1995年5月23日，JDK（Java Development，Kits）1.0a2版本正式对外发表。此后，Java语言的发展非常迅速。
1.2 Java语言的特点
Java语言适用于Internet环境，是一种被广泛使用的网络编程语言，具有简单、面向对象、可移植、分布性、解释器通用性、稳健、多线程、安全及高性能等语言特性。另外Java语言还提供了丰富的类库，方便用户进行自定义操作。下面将对Java语言的特点进行具体介绍。
1.简单
Java语言的语法规则和C++语言类似。它通过提供最基本的方法完成指定的任务。但Java语言对C++语言进行了简化和提高。例如C++语言中指针和多重继承通常使程序变得复杂，Java语言用接口取代了多重继承并取消了指针。Java语言还通过实现自动垃圾收集功能大大简化了程序设计人员的内存管理工作。
2.面向对象
Java语言以面向对象为基础。在Java语言中不能在类的外面定义单独的数据和函数，所有对象都要派生于同_个基类，并共享其所有功能，即Java语言最外部的数据类型是对象，所有的元素都要通过类和对象来访问。
3.可移植性
Java程序具有与体系结构无关的特性。这一特征使.Java程序可以方便地移植到网络的不同计算机上。同时，Java的类库中也实现了针对不同平台的接口，使得这些类库可以进行移植。
4.分布性
Java语言从诞生就和网络紧密地联系在一
……