第1篇Java基础把脉篇 2
第1章Java应用运行及开发环境的搭建 2
1.1 Windows下Java开发环境的配置 2
1.1.1相关软件介绍 2
1.1.2应用平台 3
1.1.3解析JDK结构 4
1.2 Eclipse的安装和使用 5
1.2.1 Eclipse的下载和安装 5
1.2.2 MyEclipse的下载和安装 5
1.2.3 UI界面插件的下载与安装 5
1.3 JBuilder集成开发环境介绍 8
1.4 NetBeans集成开发环境介绍 9
1.5本章小结 9
第2章初识Java语言 10
2.1 Java语言简介 10
2.1.1 Java的现状 10
2.1.2 Java语言的应用前景 1
2.1.3 Java编程语言的主要目标 11
2.1.4 Java虚拟机 12
2.1.5垃圾收集 12
2.2编写Java应用程序 12
2.2.1 FirstHelloWorldAppjava 12
2.2.2解析FirstHelloWorldApp.java 13
2.2.3编译并运行FirstHelloWorldApp 13
2.2.4向包中添加类 14
2.2.5包的引用 16
2.2.6目录布局及CLASSPATH环境变量 16
2.2.7编译查错 17
2.2.8应用集成开发环境编写程序 18
2.3 Java与C/C++、 C#的比较 23
2.3.1全局变量 23
2.3.2 goto 24
2.3.3指针 24
2.3.4内存管理 25
2.3.5数据类型的支持 26
2.3.6类型转换 26
2.3.7头文件 26
2.3.8结构和联合 27
2.3.9预处理 27
2.4本章考试、面试问题分析 27
2.5实验1 Java运行环境的安装、配置与运行 28
2.6问题集锦与解答 31
2.7自我检测 32
2.8本章小结 32
第3章Java标识符、关键字和类型 33
3.1 Java基本语法 33
3.1.1注释 33
3.1.2分号、块和空白 33
3.1.3标识符 34
3.1.4 Java关键字 34
3.1.5 Java编码约定 36
3.2数据类型 36
3.2.1简单数据类型 37
3.2.2复合数据类型 37
3.2.3常量与变量 38
3.2.4整型数据 38
3.2.5浮点型(实型)数据 39
3.2.6字符型数据 40
3.2.7布尔型数据 41
3.2.8各类数值型数据间的混合运算 41
3.2.9枚举类型 43
3.3本章考试、面试问题分析 44
3.4实验2 Java标识符、关键字和类型练习 45
3.5问题集锦与解答 46
3.6自我检测 46
3.7本章小结 47
第4章表达式和流控制 48
4.1表达式 48
4.1.1变量和作用域 48
4.1.2变量初始化 49
4.1.3运算符 50
4.1.4算术运算符 51
4.1.5关系运算符 52
4.1.6布尔逻辑运算符 52
4.1.7位运算符 53
4.2流控制 54
4.2.1分支语句 54
4.2.2循环语句 57
4.3本章考试、面试问题分析 61
4.4实验3 Java表达式和流控制练习 61
4.5自我检测 63
4.6本章小结 65
第5章数组和字符串 66
5.1一维数组 66
5.1.1一维数组的定义 66
5.1.2一维数组元素的引用 67
5.1.3一维数组的初始化 68
5.1.4一维数组在实际编程中的应用方法 68
5.2多维数组 69
5.2.1二维数组的定义 69
5.2.2二维数组元素的引用 69
5.2.3二维数组的初始化 69
5.2.4二维数组在实际编程中的应用 69
5.2.5拷贝数组 71
5.3字符串 71
5.3.1创建String类对象 71
5.3.2 String类的操作方法 72
5.4本章考试、面试问题分析 75
5.5实验4数组和字符串 76
5.6问题集锦与解答 77
5.7自我检测 78
5.8本章小结 79
第6章对象、类、包和接口 80
6.1对象基础 80
6.1.1面向对象的基本概念 80
6.1.2抽象 81
6.1.3封装 81
6.1.4对象 81
6.1.5对象、类和消息 81
6.1.6继承 83
6.1.7多态 83
6.1.8模板/泛型(template/generic ) 83
6.2类 84
6.2.1类的组成 84
6.2.2显式成员初始化 86
6.2.3重载方法名称 87
6.2.4默认构造方法 87
6.2.5调用重载构造方法 87
6.3对象 88
6.3.1对象生成 88
6.3.2对象的使用 89
6.3.3构造函数的特点 90
6.4继承 91
6.4.1继承的概念 91
6.4.2继承定义 91
6.4.3扩展类 92
6.4.4属性继承与隐藏 94
6.4.5方法继承、覆盖与重载 94
6.4.6在子类中使用构造方法 95
6.5多态与动态绑定 96
6.5.1多态 96
6.5.2动态绑定 96
6.5.3父类对象与子类对象的使用与转化 97
6.5.4 Instanceof运算符 97
6.5.5多态性在实际编程中的应用 98
6.5.6泛型 99
6.5.7构造方法的继承与重载 101
6.5.8参数可变的方法 103
6.6抽象类与抽象方法 104
6.6.1抽象类 104
6.6.2抽象方法 105
6.6.3访问控制符 106
6.7包 106
6.7.1包的作用 106
6.7.2包的创建 107
6.7.3包的引用 107
6.7.4向包中添加类 107
6.7.5包的作用域 108
6.7.6静态引用 108
6.8接口 109
6.8.1接口概念 109
6.8.2接口声明 110
6.8.3接口的实现 110
6.9静态变量 113
6.9.1类(static)变量 113
6.9.2类(static)方法 113
6.10关键字final 114
6.10.1 final类 114
6.10.2 final方法 114
6.10.3 final变量 114
6.11内部类 114
6.11.1内部类定义 114
6.11.2内部类属性 116
6.12包装类 116
6.13反射API 117
6.13.1反射API特征 117
6.13.2反射机制应用实例 117
6.14本章考试、面试问题分析 118
6.15实验5面向对象编程练习 121
6.16问题集锦与解答 124
6.17自我检测 124
6.18本章小结 125
第2篇Java标准类包把脉篇 127
第7章高级语言特征 127
7.1常用工具集介绍 127
7.1.1 Java语言的util类 127
7.1.2 Collection接口 127
7.1.3 Collection的功能方法 128
7.1.4 List接口 128
7.1.5 LinkedList类 129
7.1.6 ArrayList类 131
7.1.7 Vector类 132
7.1.8 Stack类 132
7.1.9 Set接口 133
7.1.10 Map接口 135
7.1.11 Hashtable类 136
7.1.12 HashMap类 137
7.1.13 WeakHashMap类 138
7.2日期操作 138
7.2.1 Date类 139
7.2.2 Calendar类 139
7.2.3 SimpleDateFormat类 140
7.3 Arrays类 141
7.3.1数组排序 141
7.3.2数组填充 142
7.3.3数组比较 142
7.3.4数组复制 143
7.4 java.lang.Math类和java.math包 144
7.4.1 java.lang.Math类 144
7.4.2 java.math包 144
7.5 Java Annotation 145
7.5.1 Java注释 145
7.5.2@ Override注释 145
7.5.3@ Deprecated注释 146
7.5.4@ SuppressWarnings注释 146
7.5.5自定义注释 147
7.6本章考试、面试问题分析 147
7.7实验6集合类的使用 149
7.8自我检测 151
7.9本章小结 151
第8章异常 152
8.1异常处理 152
8.1.1异常的类型 153
8.1.2不捕捉异常 153
8.1.3 try与catch 153
8.1.4多个catch子句 154
8.1.5 try语句的嵌套 154
8.1.6 throw语句 155
8.1.7 throws语句 156
8.1.8 finally 157
8.2异常分类 158
8.3自定义异常 159
8.4本章考试、面试问题分析 160
8.5实验7异常处理 161
8.6问题集锦与解答 162
8.7自我检测 162
8.8本章小结 162
第9章多线程 163
9.1多线程的概念 163
9.1.1 Java线程的模型 163
9.1.2启动接口 164
9.1.3线程调度 165
9.1.4同步 166
9.1.5消息 166
9.2线程的基本控制 167
9.2.1显式定义线程 167
9.2.2多线程例子 167
9.2.3启动一个线程 168
9.2.4操作线程 168
9.2.5暂停一个线程 168
9.2.6停止一个线程 168
9.2.7常用线程API 169
9.3本章考试、面试问题分析 169
9.4实验8多线程 170
9.5问题集锦与解答 171
9.6本章小结 172
第10章流式I/O和文件 173
10.1 Java输入输出流 173
10.1.1概述 173
10.1.2标准输入输出例子 173
10.2普通输入输出类 174
10.2.1 InputStream类型 174
10.2.2 OutputStream类型 175
10.2.3缓冲输入文件 179
10.2.4格式化的内存输入 180
10.3文件 181
10.3.1创建一个新的文件对象 181
10.3.2在实际编程中文件读写及随机访问 182
10.3.3 Java的文件管理 190
10.4对象序列化 192
10.5用Zip进行多文件保存 196
10.6本章考试、面试问题分析 198
10.7实验9流式I/O和文件 199
10.8本章小结 201
第11章Java网络编程 202
11.1 Java网络通信 202
11.1.1连接的地址 202
11.1.2端口号 203
11.1.3网络基础知识及Java网络模型 203
11.1.4面向连接的流式套接字 203
11.1.5无连接的数据报 207
11.1.6 DatagramPacket 207
11.1.7 DatagramSocket 207
11.1.8 UDP实现客户端/服务器端通讯 207
11.1.9 Java访问网络资源 209
11.2实验10 Java网络编程 211
11.3本章小结 212
第12章Swing用户界面设计 213
12.1 Java Swing 213
12.1.1概述 213
12.1.2 Swing的类层次结构 214
12.1.3 Swing组件的多样化 215
12.1.4 MVC (Model-View-Control)体系结构 215
12.1.5可存取性支持 216
12.1.6支持键盘操作 216
12.1.7设置边框 216
12.1.8使用图标(Icon) 217
12.1.9 Swing程序结构简介 217
12.1.10 Swing组件和容器 217
12.2图解应用集成开发环境设计GUI程序 220
12.2.1框架API概述 220
12.2.2图解创建GUI程序 220
12.3各种容器面板和组件 225
12.3.1分层面板(JLayeredPane) 226
12.3.2面板(JPanel) 226
12.2.3滚动窗口(JScrollPane) 228
12.3.4选项板(JTabbedPane) 228
12.3.5工具栏(JToolBar ) 228
12.3.6内部框架(JInternalFrame ) 228
12.3.7按钮(JButton) 229
12.3.8复选框(JCheckBox ) 230
12.3.9单选按钮(JRadioButton ) 230
12.3.10选择框(JComboBox) 230
12.3.11文件选择器(JFileChooser ) 231
12.3.12标签(JLabel ) 234
12.3.13列表(List) 234
12.3.14菜单(JMenu ) 237
12.3.15进程条(JProgressBar) 237
12.3.16滑动条(JSlider) 239
12.3.17表格(JTable ) 239
12.3.18树(JTree) 243
12.3.19消息框(Message box) 246
12.3.20文本区域 249
12.3.21绘图 252
12.3.22对话框(Dialog box) 254
12.3.23选择外观(Look&Feel) 254
12.4本章考试、面试问题分析 255
12.5实验11建立图形用户界面 255
12.6本章小结 256
第13章Applet设计 257
13.1 Applet简介 257
13.1.1编写Applet小程序 257
13.1.2 Applet嵌入到网页 258
13.2 Applet基础 261
13.2.1 Applet类与JApplet类 261
13.2.2 Applet与Application的区别 261
13.2.3 Applet安全性 262
13.3 Applet的应用 262
13.4将Application转化为Applet 264
13.4.1 Application程序 264
13.4.2将Application转化为Applet 265
13.4.3 Application与Applet组合 266
13.5 Applet与JAR文件 267
13.5.1 JAR文件概述 267
13.5.2 jar命令 268
13.5.3为Applet数字签名 269
13.5.4 JNLP与Java Web Start 272
13.6本章考试、面试问题分析 277
13.7实验12 Applet设计 278
13.8本章小结 278
第3篇Java扩展功能把脉篇 280
第14章Java图形图像编程 280
14.1 Java 2D 280
14.1.1概述 280
14.1.2图形、文本和图像增强功能 281
14.2基本图形绘制模型 281
14.2.1坐标系统 282
14.2.2变换 283
14.2.3字体 283
14.2.4图像 283
14.2.5填充和笔画 284
14.2.6复合 284
14.3 Java 2D API包 285
14.4图形的绘制 287
14.4.1接口和类 287
14.4.2图形绘制过程 287
14.4.3 Stroke属性 289
14.4.4 Fill属性 290
14.4.5剪切路径 290
14.4.6变换 290
14.4.7 Composite属性 291
14.5设置Graphics2D上下文环境 291
14.5.1指定Stroke属性 291
14.5.2指定Fill属性 292
14.5.3使用纹理填充形状 293
14.5.4设置剪切路径 293
14.5.5在Java 2D中绘制各种样式的图形 294
14.5.6设置Graphics2D变换 297
14.5.7指定复合样式 298
14.6图形元素的绘制 300
14.6.1绘制形状 301
14.6.2填充形状 302
14.7几何形状 302
14.8几何的概念 304
14.9字体和文本布局 308
14.9.1接口和类 308
14.9.2管理文本布局 309
14.9.3定文本布局 310
14.9.4双插入记号 310
14.9.5移动插入记号 310
14.9.6选中测试 311
14.9.7显示所选内容 311
14.9.8查询布局度量 311
14.9.9绘制文本查询 312
14.10 Java 3D介绍 313
14.10.1 Java 3D的安装和运行 314
14.10.2 Java 3D数据结构 314
14.10.3 Virtual Universe 317
14.10.4 Java 3D的坐标系统 317
14.10.5 Java 3D API 318
14.10.6创建Java 3D应用程序 319
14.11 BranchGroup类 323
14.12 Canvas3D类 323
14.13 Transform3D类 323
14.14 TransformGroup类 324
14.15 Vector3f类 324
14.16 Primitive类 326
14.17 OrbitBehavior类 326
14.18 Light类 327
14.18.1光的类型 327
14.18.2场景图中的光 327
14.18.3材质特性 327
14.19材质贴图 328
14.19.1装入材质 328
14.19.2粘贴到图像上 328
14.19.3压缩和拉伸材质 328
14.19.4材质贴图示例 329
14.20 Behavior类 331
14.20.1唤醒调用 331
14.20.2 processStimulus方法 332
14.20.3旋转示例 332
14.21实验13图形与多媒体处理 335
14.22本章小结 335
第15章JDBC技术 336
15.1 JDBC介绍 336
15.1.1 JDBC的用途 337
15.1.2 JDBC与ODBC和其他API的比较 337
15.1.3两层模型和三层模型 338
15.1.4 SQL的一致性 338
15.1.5 JDBC驱动程序的类型 339
15.2 Connection对象 339
15.2.1建立连接 339
15.2.2发送SQL 340
15.2.3事务隔离级别 340
15.2.4驱动设置 340
15.3 Statement对象 342
15.3.1创建Statement对象 342
15.3.2使用Statement对象执行语句 342
15.3.3语句完成 342
15.3.4关闭Statement对象 343
15.3.5 Statement对象中的SQL转义语法 343
15.4 ResultSet对象 343
15.4.1行和光标 343
15.4.2列 344
15.4.3数据类型和转换 344
15.5 PreparedStatement接口 344
15.5.1创建PreparedStatement对象 345
15.5.2传递IN参数 345
15.5.3 IN参数中数据类型的一致性 345
15.6 CallableStatement对象 345
15.6.1创建CallableStatement对象 346
15.6.2 IN和OUT参数 346
15.6.3 INOUT参数 346
15.6.4先检索结果,再检索OUT参数 347
15.6.5检索作为OUT参数的NULL值 347
15.7 JDBC 4.0新特性 347
15.7.1自动加载驱动 347
15.7.2 RowId 348
15.7.3 SQL XML 348
15.7.4 SQLExcpetion的增强 349
15.8本章考试、面试问题分析 349
15.9实验14数据库的连接 350
15.10本章小结 351
第4篇Java项目实战把脉篇 353
第16章M P3/M P4媒体播放器设计 353
16.1在Applet中播放声音 353
16.1.1 Java声音处理 353
16.1.2应用AudioClip接口来实现声音的播放 354
16.1.3应用Sound API来处理声音 355
16.2 Java媒体框架 358
16.2.1 JMF系统介绍 358
16.2.2数据源(Data source) 359
16.2.3捕获设备(Capture Device) 359
16.2.4播放器(Player) 359
16.2.5处理器(Processor) 360
16.2.6数据池(DataSink) 361
16.2.7数据格式(Format) 361
16.2.8管理器(Manager) 361
16.3 MP3/MP4媒体播放器的设计 362
16.3.1 JMF的下载和安装 362
16.3.2 MP3/MP4媒体播放器设计分析 363
16.3.3 Player对象的扩展 364
16.3.4 MP3/MP4媒体播放器主程序的设计 366
第17章网络实时流媒体收发系统 369
17.1获取媒体数据的分析 369
17.1.1注册音频和视频截取设备 369
17.1.2获取音频和视频数据 370
17.1.3保存摄像头数据为视频文件 371
17.1.4摄像头拍照 373
17.1.5通过网络发送实时媒体流数据 374
17.1.6通过网络接收实时媒体流数据 376
17.2网络实时流媒体收发系统的设计 378
17.2.1 Java网络流媒体播放器分析 378
17.2.2媒体设备捕捉和发送类 379
17.2.3媒体播放主程序类 385
17.2.4同时接收多个流媒体类 388
17.3本章小结 391
第18章航空电子票务综合管理系统 392
18.1系统需求说明 392
18.1.1需求分析 392
18.1.2主要用例说明 392
18.2业务实体层设计 393
18.2.1设计域模型 393
18.2.2设计数据模型 394
18.3系统设计 395
18.3.1程序的实现 395
18.3.2航空电子票务管理类 396
18.3.3数据库连接类 402
18.3.4每期航班座位信息类 404
18.3.5航班管理类 409
18.3.6航班简单查询类 412
18.3.7综合信息查询类 419
18.3.8定票管理类 431
18.3.9定票客户信息类 443
18.3.10退票管理类 449
18.3.11查询客户己定票信息类 456
18.4本章小结 459