标题：Java完全自学手册
内容简介
  封面Java语言是一种跨平台的高级语言，无论是网络世界和桌面应用程序，还是分布式应用环境和嵌入式应用都可以看到Java的身影。显然Java语言依然保持着旺盛的生命力，这也使得众多的从业人员开始学习Java语言。《Java完全自学手册》一共分为五篇，循序渐进地讲述了Java语言的各项技术，
第一篇Java技术入门 使读者对Java语言有个初步的了解，为后面的深入学习奠定基础；第二篇 面向对象技术是需要读者认真学习和体会的，第三篇编程提高篇 详细讲述了Java语言的高级主题，即读者进阶学习的必备内容；
第四篇是Java分布式计算技术的内容 ，如果读者对Web编程感兴趣，相信本篇可以满足您的需求。为了说明Java语言的应用，《Java完全自学手册》最后一篇介绍了一个实例 ，通过该程序从无到有的过程使读者知道如何使用Java语言编写应用程序。
《Java完全自学手册》适用于Java初、中级用户，Java程序员，大中专院校相关专业参考。
编辑推荐
特色涵盖基础知识、核心技术、典型示例等内容；按照“基本概念－核心语法－典型示例”的模式讲解，容易上手；提供150余个典型实例、1个项目案例。超值光盘内容：《Java完全自学手册》源代码+《Java完全自学手册》视频演示+《Java完全自学手册》电子教案；1200余页编程技术文档+45个编程专题视频讲座。
深入浅出地介绍、Java语言开发基础
详细介绍Java开发环境的搭建与配置
全面剖析Java语言的各项技术
重点介绍Java面向对象特性
深入剖析Java与XML数据集合的应用形式
提供一个完整的项目案例
作者均为有多年编程经验的一线程序员或者培训讲师
目录
写给自学编程的人员
前言第一篇Java技术入门第0章　Java技术概述1
0.1　Java技术1
0.1.1　Java编程语言1
0.1.2　Java语言平台2
0.1.3　Java语言的功能2
0.1.4　Java语言的优点3
0.2　Windows下的“HelloWorld”应用程序3
0.2.1　创建应用程序的软件环境3
0.2.2　创建“HelloWorld”应用程序的步骤4
0.3　深入探讨“HelloWorld”应用程序6
0.3.1　注释源代码6
0.3.2　实现类定义6
0.3.3　详解main（）方法7
0.4　常见编译错误7
0.4.1　环境变量设置错误7
0.4.2　语法错误7
0.4.3　语义错误8
0.4.4　运行时错误8
0.5　本章习题9
第1章　Java开发工具及环境设置10
1.1　Java开发工具简介10
1.2　如何下载并安装JDK10
1.3　JDK内置工具10
1.3.1　JDK常用工具11
1.3.2　JDK常用工具示例11
1.3.3　应用程序发布工具（jar）12
1.4　jar文件的创建与查看13
1.4.1　创建jar文件13
1.4.2　查看jar文件的内容15
1.4.3　提取jar文件的内容16
1.4.4　更新jar文件17
1.4.5　运行打包的jar软件19
1.5　JDK环境设置20
1.6　一个简单的Java应用程序21
1.7　一个简单的JavaApplet应用程序22
1.7.1　编写一个Applet23
1.7.2　编写一个用来调用AppletJava程序的HTML文件23
1.7.3　Applet的运行过程23
1.8　注释及内嵌式文档24
1.9　本章习题25
第2章　Java语言基础26
2.1　Java命名规则26
2.2　数据类型26
2.2.1　基本数据类型26
2.2.2　引用数据类型29
2.3　数据类型转换30
2.3.1　隐式数据类型转换30
2.3.2　显式数据类型转换30
2.4　变量与常量31
2.4.1　变量31
2.4.2　常量31
2.5　Java运算符32
2.5.1　数学运算符32
2.5.2　关系运算符33
2.5.3　逻辑运算符34
2.5.4　位运算符34
2.5.5　位移运算符35
2.5.6　“？:”运算符35
2.5.7　运算符的优先顺序36
2.6　本章习题36
第3章　程序流程控制38
3.1　流程控制概述38
3.2　条件语句38
3.3　分支语句39
3.3.1　简单的if-else语句39
3.3.2　if-else多分支语句40
3.3.3　if嵌套语句40
3.3.4　switch语句41
3.3.5　分支语句中的return42
3.4　循环语句42
3.4.1　while循环语句42
3.4.2　do-while循环语句43
3.4.3　for循环语句44
3.5　跳转语句45
3.5.1　break跳转语句45
3.5.2　continue跳转语句45
3.6　本章习题46
第4章　数组48
4.1　一维数组48
4.1.1　定义一维数组48
4.1.2　初始化一维数组48
4.1.3　使用一维数组49
4.2　二维数组50
4.2.1　定义二维数组50
4.2.2　初始化二维数组51
4.2.3　使用二维数组51
4.3　多维数组52
4.3.1　定义多维数组52
4.3.2　初始化多维数组53
4.3.3　使用多维数组54
4.4　数组操作55
4.4.1　数组的复制55
4.4.2　数组的填充55
4.4.3　数组的比较56
4.4.4　数组的排序57
4.4.5　数组的查找58
4.5　本章习题60
第5章　字符串操作61
5.1　字符串61
5.1.1　字符串分类61
5.1.2　声明字符串61
5.1.3　创建字符串61
5.2　字符串操作62
5.2.1　字符串连接63
5.2.2　比较字符串63
5.2.3　获取字符串长度63
5.2.4　复制字符串63
5.2.5　获得子串64
5.2.6　获取指定位置的字符64
5.2.7　更改大小写65
5.2.8　分割字符串65
5.2.9　更改字符串中的部分字符65
5.3　格式化字符串66
5.3.1　一般类型格式化66
5.3.2　日期和时间类型格式66
5.4　本章习题67
第6章　容器类简介68
6.1　容器简介68
6.1.1　容器框架68
6.1.2　Java容器框架的优势与劣势70
6.2　容器接口的分类71
6.2.1　Collection接口定义与应用71
6.2.2　Map接口定义与应用73
6.3　集合容器—Set75
6.3.1　Set接口定义与应用75
6.3.2　Set实现77
6.4　列表容器—List81
6.4.1　List接口定义与应用81
6.4.2　List实现83
6.4.3　使用List实现堆栈和队列84
6.5　Map容器86
6.5.1　Map实现86
6.5.2　正确认识hashCode方法89
6.6　迭代器91
6.6.1　迭代器接口92
6.6.2　迭代器的使用92
6.7　本章习题94第二篇　面向对象技术第7章　面向对象技术导论
7.1　万事万物皆对象95
7.1.1　程序设计中的抽象化认识95
7.1.2　如何获得和操控对象96
7.1.3　对象的存储空间96
7.1.4　对象的生存空间98
7.2　一种新的数据类型：类（Class）98
7.2.1　类（Class）概述98
7.2.2　类的属性详解99
7.2.3　类的方法详解100
7.2.4　一种特殊的方法—类的构造函数101
7.2.5　关键字static102
7.2.6　关键字this104
7.3　访问权限106
7.3.1　包（package）106
7.3.2　设置Java访问权限107
7.4　继承110
7.4.1　什么是继承110
7.4.2　如何实现继承110
7.4.3　super关键字112
7.5　多态113
7.5.1　什么是多态113
7.5.2　方法的重载114
7.5.3　抽象类和抽象函数116
7.6　接口118
7.6.1　接口定义118
7.6.2　接口和抽象类119
7.6.3　接口的使用119
7.7　本章习题122
第8章　对象的初始化和清理123
8.1　构造函数123
8.1.1　默认构造函数124
8.1.2　自定义构造函数124
8.2　函数的重载125
8.3　数据成员的初始化126
8.4　static成员的初始化128
8.5　对象的清理132
8.6　本章习题132第三篇　Java编程提高篇第9章　多线程编程133
9.1　线程概述133
9.2　创建线程134
9.2.1　继承Thread类创建线程134
9.2.2　实现Runnable接口创建线程135
9.3　线程的状态136
9.4　线程的优先级138
9.5　线程的同步139
9.5.1　Java程序的资源共享139
9.5.2　synchronized关键字141
9.5.3　同步控制方法142
9.5.4　同步控制块144
9.6　线程的控制145
9.6.1　启动线程145
9.6.2　挂起和恢复线程146
9.6.3　线程的休眠146
9.6.4　等待和通知147
9.6.5　结束线程149
9.7　线程间通信150
9.7.1　PipedWriter类详解150
9.7.2　PipedReader类详解150
9.7.3　管道通信实例151
9.8　多线程的死锁问题153
9.9　多线程的缺点153
9.10　本章习题154
第10章　JDBC链接数据库155
10.1　JDBC简介155
10.1.1　什么是JDBC155
10.1.2　JDBC的目标155
10.1.3　JDBC如何实现数据库的平台无关性155
10.2　JDBC中的常用类和接口156
10.2.1　驱动程序管理类（DriverManager）156
10.2.2　声明类（Statement）156
10.2.3　数据库链接类（Connection）157
10.2.4　结果集合类（ResultSet）157
10.3　如何实现数据库的链接158
10.3.1　加载合适的数据库驱动程序158
10.3.2　数据库配置问题158
10.3.3　建立数据库链接并获得Statement对象159
10.3.4　执行数据库查询语句160
10.3.5　获得查询结果160
10.3.6　关闭数据库链接160
10.3.7　完整的示例程序160
10.4　数据库基本操作162
10.4.1　创建数据库表162
10.4.2　查询数据162
10.4.3　添加数据163
10.4.4　更改数据163
10.4.5　删除数据163
10.5　本章习题164
第11章　Java异常处理165
11.1　理解异常165
11.2　异常示例165
11.3　Java异常处理167
11.3.1　try区块167
11.3.2　catch区块168
11.3.3　Java异常规范171
11.4　Throwable类及其子类171
11.4.1　Throwable类定义和方法172
11.4.2　异常类的继承关系174
11.4.3　异常重抛的例子174
11.5　运行期异常177
11.6　自定义异常178
11.7　finally子句182
11.7.1　执行finally子句182
11.7.2　finally子句的必要性184
11.8　异常的几个问题185
11.8.1　异常丢失185
11.8.2　构造函数中的异常处理187
11.8.3　异常匹配188
11.9　异常的优点189
11.9.1　分离异常处理代码190
11.9.2　按方法调用顺序向上传播错误191
11.9.3　分组并区分错误类型193
11.10　本章习题194
第12章　I/O处理197
12.1　流（Stream）的概念197
12.2　字符流197
12.2.1　输入流类InputStream197
12.2.2　输出流类OutputStream198
12.3　字节流199
12.3.1　Writer类199
12.3.2　Reader类200
12.4　File类201
12.4.1　创建文件夹（目录）201
12.4.2　创建文件202
12.4.3　复制文件203
12.4.4　删除文件204
12.4.5　删除文件夹205
12.5　I/O流的典型运用207
12.5.1　文件流207
12.5.2　读取内存数据208
12.5.3　链接文件209
12.5.4　管道流210
12.5.5　随机访问文件211
12.5.6　从标准输入读取212
12.5.7　I/O重定向212
12.5.8　过滤流213
12.5.9　序列化对象214
12.6　本章习题216
第13章　Swing编程218
13.1　Swing容器218
13.1.1　JFrame容器218
13.1.2　JPanel容器219
13.2　Swing的事件模型221
13.2.1　制作一个按钮221
13.2.2　实现按钮的事件监听222
13.2.3　Swing的事件模型223
13.3　Swing组件224
13.3.1　按钮225
13.3.2　图示（Icons）225
13.3.3　文本227
13.3.4　工具提示228
13.3.5　单选按钮228
13.3.6　复选框229
13.3.7　组合框230
13.3.8　列表框232
13.3.9　消息框234
13.3.10　菜单239
13.3.11　页签式面板242
13.3.12　弹出式菜单243
13.3.13　工具条244
13.3.14　进度条246
13.3.15　对话框247
13.3.16　文件对话框248
13.3.17　边框251
13.3.18　表模型252
13.3.19　树模型255
13.4　控制面板布局管理器261
13.4.1　流布局管理器261
13.4.2　边界布局管理器262
13.4.3　网格布局管理器264
13.4.4　盒子布局管理器266
13.5　本章习题267第四篇　Java分布式计算技术第14章　Java网络编程269
14.1　TCP/IP269
14.1.1　IP协议和IP地址269
14.1.2　TCP和端口271
14.1.3　客户/服务器通信模型272
14.2　UDP272
14.3　基于Java的客户/服务器程序273
14.3.1　Socket及其原语273
14.3.2　创建服务器274
14.3.3　创建客户端275
14.4　Socket类详解278
14.4.1　创建Socket278
14.4.2　Socket类的getXX（）方法280
14.4.3　Socket类的setXX（）方法282
14.4.4　关闭Socket286
14.5　SocketServer类287
14.5.1　创建SocketServer287
14.5.2　SocketServer类的两个重要方法288
14.5.3　读取SockerServer信息289
14.6　数据报通信290
14.6.1　数据报通信简介291
14.6.2　DatagramPacket类简介291
14.6.3　DatagramSocket类简介293
14.6.4　实现数据报通信296
14.7　本章习题298
第15章　RMI技术299
15.1　如何实现RMI程序299
15.1.1　定义远端接口299
15.1.2　定义远端对象300
15.1.3　实现服务器对象的Stub和Sckeleton300
15.1.4　创建服务器程序301
15.1.5　创建客户端程序302
15.1.6　运行RMI程序303
15.2　RMI的动态加载类305
15.3　RMI的特点305
15.4　本章习题306
第16章　JSP技术307
16.1　JSP技术概述307
16.1.1　JSP的基本概念307
16.1.2　JSP的运行原理308
16.2　构建JSP运行、开发环境308
16.2.1　JRE的安装309
16.2.2　Tomcat的安装310
16.2.3　开发工具的选择312
16.2.4　建立和保存JSP文件312
16.3　JSP编程基础314
16.3.1　HTML标记314
16.3.2　HTML表单316
16.4　JSP基本语法321
16.4.1　声明（Declaration）321
16.4.2　表达式（Expression）321
16.4.3　脚本（Scriptlet）322
16.4.4　注释（Annotations）322
16.4.5　指令（Directive）323
16.4.6　动作（Action）323
16.5　JSP指令323
16.5.1　Page指令323
16.5.2　Include指令325
16.6　JSP动作326
16.6.1　jsp：include动作326
16.6.2　jsp：useBean动作327
16.6.3　jsp：setProperty动作327
16.6.4　jsp：getProperty动作328
16.6.5　jsp：forward动作329
16.6.6　jsp：plugin动作329
16.7　JSP内部对象331
16.7.1　request对象332
16.7.2　response对象334
16.7.3　pageContext对象335
16.7.4　session对象335
16.7.5　application对象338
16.7.6　out对象339
16.7.7　config对象339
16.7.8　page对象340
16.7.9　exception对象340
16.7.10　内部对象的作用范围340
16.8　本章习题341
第17章　JavaBean技术343
17.1　JavaBean技术概述343
17.2　JavaBean编写规范343
17.2.1　Bean组件的工作机制344
17.2.2　JavaBean的编写要求344
17.2.3　JavaBean的命名规范344
17.2.4　JavaBean的包344
17.2.5　JavaBean的结构345
17.3　JavaBean属性345
17.3.1　单值（Simple）属性346
17.3.2　索引（Indexed）属性346
17.3.3　关联（Bound）属性347
17.3.4　约束（Constrained）属性348
17.4　JavaBean方法350
17.4.1　构造方法350
17.4.2　访问方法350
17.4.3　一般方法351
17.5　JavaBean事件351
17.5.1　事件模型352
17.5.2　事件状态对象352
17.5.3　事件监听者接口与事件监听者353
17.5.4　事件监听者注册与注销353
17.5.5　适配类354
17.6　JavaBean在JSP中的应用355
17.6.1　调用JavaBean355
17.6.2　链接数据库Bean356
17.6.3　通过JavaBean查询数据库357
17.6.4　向数据库添加记录359
17.6.5　修改数据库记录361
17.6.6　删除数据库记录362
17.7　本章习题364
第18章　Servlet技术367
18.1　Servlet概述367
18.1.1　Servlet的特点367
18.1.2　Servlet的应用范围367
18.1.3　Servlet与JSP的关系368
18.2　Servlet的基本架构368
18.2.1　Servlet工作原理368
18.2.2　Servlet接口369
18.2.3　典型Servlet程序369
18.3　ServletAPI370
18.3.1　Servlet方法370
18.3.2　常用的ServletAPI371
18.3.3　Servlet生命周期372
18.4　Servlet开发373
18.4.1　Servlet的基本代码373
18.4.2　Servlet与表单交互374
18.4.3　Servlet控制会话376
18.5　本章习题378
第19章　Java与XML技术381
19.1　标记语言的发展史381
19.2　HTML语言及其局限381
19.2.1　HTML语言381
19.2.2　HTML语言的局限性381
19.3　XML语言383
19.3.1　XML的优势383
19.3.2　XML文档的基础知识385
19.3.3　XML文档结构389
19.4　创建XML文档390
19.4.1　创建元素390
19.4.2　创建空元素391
19.4.3　元素属性392
19.4.4　注释392
19.4.5　实体393
19.5　XML与Java393
19.5.1　XML与Java结合理由394
19.5.2　Java如何解析XML文档394
19.6　DOM解析XML文档395
19.6.1　DOM（文档对象模型）395
19.6.2　DOM的结构及接口396
19.6.3　DOM实现与核心API396
19.6.4　基于DOM的树操作396
19.7　本章习题399第五篇　Java编程实例篇第20章　Java编程实例403
20.1　系统设计403
20.2　系统目标403
20.2.1　文件操作用例404
20.2.2　话单操作用例404
20.2.3　话单维护用例404
20.3　系统功能404
20.3.1　文件操作功能405
20.3.2　话单维护功能405
20.3.3　话单操作功能405
20.3.4　系统维护功能405
20.4　业务流程405
20.4.1　文件操作流程405
20.4.2　话单维护流程406
20.4.3　话单操作流程406
20.5　软件模块设计406
20.5.1　主界面模块406
20.5.2　文件操作模块410
20.5.3　话单操作模块415
20.5.4　话单维护模块424
20.6　软件打包发行428
20.7　数据库配置431
……