目 录
Java基础把脉篇...2
第1章 Java平台及开发环境的搭建...3
1.1 Windows下Java开发环境的配置...3
1.1.1 相关软件介绍...3
1.1.2 应用平台...4
1.1.3 解析JDK结构...5
1.2 Eclipse的安装和使用...5
1.2.1 Eclipse的下载和安装...5
1.2.2 MyEclipse的下载和安装...6
1.3 JBuilder集成开发环境介绍...6
1.4 NetBeans集成开发环境介绍...7
1.5 本章小结...7
第2章 理解Java语言...8
2.1 Java 的发展历程...8
2.1.1 Java的现状...8
2.1.2 Java语言的应用领域...9
2.1.3 Java编程语言的主要目标...9
2.1.4 Java JVM虚拟机...9
2.1.5 垃圾收集机制...10
2.1.6 Coin项目...10
2.2 Java语言的特性...11
2.2.1 语法简单...11
2.2.2 面向对象...11
2.2.3 分布性...11
2.2.4 可移植性...11
2.2.5 安全性...12
2.2.6 健壮性...12
2.2.7 解释型...12
2.2.8 多线程...12
2.2.9 动态性与并发性...12
2.3 Java 中的面向对象编程...13
2.3.1 对象的定义及操作...13
2.3.2 抽象...14
2.3.3 如何定义对象类...14
2.3.4 类和对象的关系...15
2.3.5 对象操作...15
2.3.6 封装...16
2.3.7 继承与子类...16
2.3.8 多态...17
2.3.9 模板/泛型(template/generic)...18
2.3.10 注解...19
2.4 Java程序结构...19
2.4.1 学习Java应用程序的编写...19
2.4.2 解析FirstHelloWorldApp.java.19
2.4.3 编译并运行FirstHelloWorldApp.20
2.4.4 使用package 管理类...21
2.4.5 包的引用...22
2.4.6 目录布局及CLASSPATH环境变量...23
2.4.7 编译查错...24
2.4.8 从JDK 到IDE.24
2.5 Java与C/C++、C#的比较...30
2.5.1 全局变量...30
2.5.2 goto.30
2.5.3 指针...30
2.5.4 内存管理...31
2.5.5 数据类型的支持...32
2.5.6 类型转换...33
2.5.7 头文件...33
2.5.8 结构和联合...33
2.5.9 预处理...33
2.6 本章考试、面试问题分析...34
2.6.1 Server jvm与Client jvm的区别?...34
2.6.2 GC表示什么? 为什么要有GC?.34
2.6.3 论述Java垃圾回收的优点和原理?.34
2.6.4 论述JVM加载class文件的原理机制?.34
2.6.5 执行System.gc()是否可以马上回收内存?...34
2.6.6 Java中配置环境变量时系统变量和用户的环境变量有什么区别? 35
2.7 实验 1 Java运行环境的安装、配置与运行...35
2.7.1 实验目的...35
2.7.2 实验要求...35
2.7.3 实验内容...35
2.8 问题集锦与解答...38
2.9 自我检测...39
2.10 本章小结...39
第3章 Java标识符、关键字和类型...40
3.1 Java基本语法...40
3.1.1 程序注释...40
3.1.2 分号、块和空白块...42
3.1.3 标识符...42
3.1.4 Java关键字... 43
3.1.5 Java编码约定...44
3.2 数据类型...44
3.2.1 简单数据类型...45
3.2.2 复合数据类型...45
3.2.3 常量与变量...46
3.2.4 整型数据...47
3.2.5 浮点型(实型)数据...47
3.2.6 字符型数据...48
3.2.7 布尔型数据...49
3.2.8 枚举类型...49
3.3 二进制字面值...51
3.4 在数值字面量中使用下划线...51
3.5 本章程序设计案例...52
3.6 本章考试、面试问题分析...53
3.6.1 &和&&的区别...53
3.6.2 char型变量中能不能存贮一个中文汉字?为什么? 53
3.6.3 Java有没有goto关键字?.53
3.6.4 int 和 Integer 有什么区别?.53
3.6.5 简述逻辑操作(&,|,^)与条件操作(&&,||)的区别 53
3.6.6 Java中有没有无符号型整数?...54
3.7 实验 2 Java标识符、关键字和类型练习...54
3.7.1 实验目的...54
3.7.2 实验要求...54
3.7.3 实验内容...54
3.8 问题集锦与解答...55
3.9 自我检测...56
3.10 本章小结...56
第4章 表达式和流控制...57
4.1 变量...57
4.1.1 变量的声明和作用域...57
4.1.2 变量初始化...58
4.2 运算符...59
4.3 算术运算...60
4.3.1 二元算术运算符...60
4.3.2 一元算术运算符...60
4.3.3 整数计算...61
4.3.4 整数除法和余数...61
4.3.5 其他算术运算...61
4.3.6 混合运算自动类型转换...61
4.3.7 混合运算强制类型转换...62
4.4 逻辑关系运算...63
4.4.1 关系运算符...63
4.4.2 布尔逻辑运算符...63
4.5 位运算...65
4.5.1 位运算符...65
4.5.2 位移运算...65
4.5.3 位逻辑运算符...65
4.6 顺序结构...66
4.7 分支结构...67
4.7.1 条件语句if-else.67
4.7.2 多分支语句switch.67
4.7.3 Java 7 的switch 分支语句...69
4.8 循环结构...70
4.8.1 while 循环语句...70
4.8.2 do-while 循环语句...70
4.8.3 for语句...71
4.9 控制循环结构...71
4.9.1 return语句...71
4.9.2 continue语句...72
4.9.3 break语句...72
4.9.4 带标签的break.74
4.9.5 带标签的continue.74
4.9.6 各种控制语句在实际编程中的应用...75
4.10 本章程序设计案例...77
4.11 本章考试、面试问题分析...78
4.12 实验 3 Java表达式和流控制练习...79
4.12.1 实验目的...79
4.12.2 实验要求...79
4.12.3 实验内容...79
4.13 自我检测...81
4.14 本章小结...82
第5章 数组和字符串...83
5.1 一维数组...83
5.1.1 一维数组的定义...83
5.1.2 一维数组元素的引用...84
5.1.3 一维数组的初始化...85
5.1.4 一维数组在实际编程中的应用方法...85
5.2 多维数组...86
5.2.1 二维数组的定义...86
5.2.2 二维数组元素的引用...86
5.2.3 二维数组的初始化...86
5.2.4 二维数组在实际编程中的应用...86
5.2.5 拷贝数组...88
5.3 字符串...88
5.3.1 字符串字面量...88
5.3.2 String对象的创建...89
5.4 字符串操作...89
5.4.1 字符串基本方法...89
5.4.2 字符串的比较...90
5.4.3 从字符串中提取子串...90
5.5 可变字符串...91
5.5.1 创建StringBuffer 对象...91
5.5.2 增长StringBuffer 对象...92
5.5.3 删除StringBuffer 对象...92
5.5.4 StringBuffer对象的容量...93
5.6 本章考试、面试问题分析...93
5.6.1 数组是一种类型吗?...93
5.6.2 String是最基本的数据类型吗?.93
5.6.3 String 和StringBuffer的区别?.93
5.6.4 数组有没有length()这个方法? String有没有length()这个方法? 93
5.6.5 是否可以继承String类?.94
5.6.6 int[]是一种类型吗?.94
5.6.7 数组配内存空间后,是否有初始值?.94
5.7 实验 4 数组和字符串...94
5.7.1 实验目的...94
5.7.2 实验要求...94
5.7.3 实验内容...94
5.8 问题集锦与解答...96
5.9 自我检测...97
5.10 本章小结...97
第6章 对象、类、包和接口...99
6.1 类...99
6.1.1 类的声明...99
6.1.2 类体...100
6.2 定义方法...100
6.2.1 方法的返回值...101
6.2.2 方法的参数列表...101
6.3 构造方法...102
6.3.1 构造方法...102
6.3.2 默认构造方法...102
6.4 类成员...103
6.4.1 成员变量...103
6.4.2 显式成员初始化...104
6.4.3 单根(Singleton)类...104
6.5 方法重载...105
6.5.1 多个构造方法...105
6.5.2 调用重载构造方法...105
6.6 对象...106
6.6.1 对象生成...106
6.6.2 对象的使用...106
6.6.3 构造函数的特点...108
6.7 继承...109
6.7.1 继承的概念...109
6.7.2 继承定义...109
6.7.3 扩展类...110
6.7.4 属性继承与隐藏...112
6.7.5 方法继承、覆盖与重载...112
6.7.6 在子类中使用构造方法...113
6.7.7 @Override 标记...113
6.8 多态与动态绑定...114
6.8.1 多态...114
6.8.2 动态绑定...114
6.8.3 父类对象与子类对象的使用与转化...115
6.8.4 Instanceof运算符...116
6.8.5 多态性在实际编程中的应用...116
6.8.6 泛型...118
6.8.7 Java7泛型的“菱形”语法...120
6.8.8 构造方法的继承与重载...120
6.8.9 参数可变的方法...122
6.8.10 Java 7优化变长参数的方法调用...123
6.9 抽象类与抽象方法...123
6.9.1 抽象类...123
6.9.2 抽象方法...124
6.9.3 访问控制符...125
6.10 包...126
6.10.1 包的作用...126
6.10.2 包的创建...126
6.10.3 包的引用...126
6.10.4 向包中添加类...127
6.10.5 包的作用域...127
6.10.6 静态引用...127
6.11 接口...128
6.11.1 接口概念...129
6.11.2 接口声明...129
6.11.3 接口的实现...130
6.12 静态变量...132
6.12.1 类(static)变量...132
6.12.2 类(static)方法...133
6.13 关键字final.133
6.13.1 final类...133
6.13.2 final方法...133
6.13.3 final变量...133
6.14 内部类...134
6.14.1 内部类定义...134
6.14.2 内部类属性...135
6.15 包装类...135
6.16 反射API136
6.16.1 反射API特征...136
6.16.2 反射机制应用实例...136
6.17 本章考试、面试问题分析...138
6.17.1 构造函数有没有返回值?...138
6.17.2 面向对象的特征有哪些方面?...138
6.17.3 访问修饰符“public/private/protected”的使用有什么不同? 138
6.17.4 用关键字final分别修饰类、方法、变量时,有何意义? 139
6.17.5 内部类可以引用它的包含类的成员吗? 有没有什么限制? 139
6.17.6 说明final、finally、finalize的区别?...139
6.17.7 抽象类和接口有什么区别?.139
6.17.8 StaticNested Class 和 InnerClass的不同? 139
6.17.9 接口是否可继承接口?抽象类是否可实现接口?抽象类是否可继承实体类? 140
6.17.10 构造器Constructor是否可被override?.140
6.17.11 Java中是否只有值传递参数,是否有引用传递? 140
6.17.12 Overload和Override的区别?...140
6.17.13 Java的接口和C++的虚类的相同和不同处? 140
6.18 实验5 面向对象编程练习...140
6.18.1 实验目的...140
6.18.2 实验要求...141
6.18.3 实验内容...141
6.19 问题集锦与解答...143
6.20 自我检测...143
6.21 本章小结...144
Java标准类包把脉篇...146
第7章 Java集合与工具类...147
7.1 Java集合...147
7.1.1 Java语言的util类...147
7.1.2 Collection接口...147
7.1.3 Collection的功能方法...148
7.2 List集合...149
7.2.1 LinkedList类...149
7.2.2 ArrayList类...151
7.2.3 Vector类...152
7.2.4 Stack 类...152
7.3 Set集合...153
7.3.1 HashSet类...155
7.3.2 TreeSet类...156
7.3.3 LinkedHashSet类...156
7.3.4 EnumSet类...157
7.4 Map接口...158
7.4.1 Hashtable类...159
7.4.2 HashMap类...160
7.4.3 WeakHashMap类...161
7.4.4 EnumMap类...161
7.4.5 IdentityHashMap类...162
7.5 Queue集合...162
7.5.1 PriorityQueue实现类...163
7.5.2 LinkedList 实现类...164
7.5.3 Deque 接口与ArrayDeque实现类...165
7.6 日期操作...166
7.6.1 Date类...166
7.6.2 Calendar类...167
7.6.3 SimpleDateFormat类...168
7.7 Arrays类...169
7.7.1 数组排序...169
7.7.2 数组填充...169
7.7.3 数组比较...170
7.7.4 数组复制...171
7.8 java.lang.Math类和java.math包...172
7.8.1 java.lang.Math类...172
7.8.2 java.math包...172
7.9 Java Annotation.172
7.9.1 Java注释...173
7.9.2 @Override注释...173
7.9.3 @Deprecated注释...173
7.9.4 @SuppressWarnings注释...174
7.9.5 自定义注释...174
7.10 常用类...175
7.10.1 Object 类...175
7.10.2 Java 7 新增的Objects类...176
7.10.3 Java 7 的ThreadLocalRandom与Random 176
7.10.4 BigDecimal177
7.10.5 使用Scanner获取键盘输入...178
7.10.6 使用BufferedReader获取键盘输入...178
7.10.7 System 类...179
7.10.8 Runtime 类...180
7.11 本章考试、面试问题分析...181
7.11.1 堆和栈有什么区别?...181
7.11.2 论述ArrayList、Vector和LinkedList的存储性能和特性? 181
7.11.3 Collection 和Collections有何区别?...181
7.11.4 HashMap和Hashtable有何区别?...181
7.11.5 List、Set和Map是否继承自Collection接口? 182
7.11.6 Set中的元素是不能重复的,那么用什么方法来区分重复与否呢? 182
7.11.7 ArrayList与Vector的区别?...182
7.11.8 在HashMap中,如何判断所给Key值存在? 182
7.12 实验6 集合类的使用...182
7.12.1 实验目的...182
7.12.2 实验要求...182
7.12.3 实验内容...183
7.13 自我检测...185
7.14 本章小结...186
第8章 异常处理...187
8.1 异常处理...187
8.1.1 异常的类型...188
8.1.2 不捕捉异常...188
8.2 异常处理机制...188
8.2.1 使用try...catch捕获异常...188
8.2.2 多个catch子句...189
8.2.3 try语句的嵌套...190
8.2.4 Java 7提供的多异常捕获...190
8.2.5 Java 7的自动关闭资源的try语句...191
8.2.6 使用finally回收资源...192
8.3 使用throw抛出异常...193
8.3.1 throw语句...193
8.3.2 throws语句...193
8.3.3 Java 7增强的throw语句...194
8.4 异常分类...195
8.5 自定义异常...196
8.6 本章考试、面试问题分析...197
8.6.1 error和exception有什么区别?...197
8.6.2 Java中的异常处理机制的原理?...197
8.6.3 关键字throws、throw、try、catch和finally分别代表什么意义? 197
8.7 实验7 异常处理...198
8.7.1 实验目的...198
8.7.2 实验要求...198
8.7.2 实验内容...198
8.8 问题集锦与解答...199
8.9 自我检测...199
8.10 本章小结...200
第9章 多线程...201
9.1 多线程的概念...201
9.2 线程的创建和启动...202
9.1.1 继承Thread类创建线程类...202
9.1.2 实现Runnable接口创建线程类...203
9.1.3 使用Callable和Future创建线程...204
9.3 线程调度...205
9.4 线程的同步...206
9.5 线程的基本控制...207
9.5.1 显式定义线程...207
9.5.2 多线程例子...208
9.5.3 启动一个线程...208
9.5.4 操作线程...209
9.5.5 暂停一个线程...209
9.5.6 停止一个线程...209
9.5.7 常用线程API209
9.6 线程池...210
9.6.1 Java 5实现的线程池...210
9.6.2 Java 7新增的ForkJoinPool212
9.7 ThreadLocal类...214
9.8 本章考试、面试问题分析...216
9.8.1 sleep() 和wait() 有什么区别?...216
9.8.2 同步和异步有何异同,在什么情况下分别使用它们? 216
9.8.3 启动一个线程是用run()还是start()?...216
9.8.4 线程同步的方法有那些?...216
9.8.5 Java中有几种方法可以实现一个线程?...217
9.9 实验8 多线程...217
9.9.1 实验目的...217
9.9.2 实验要求...217
9.9.3 实验内容...217
9.10 问题集锦与解答...218
9.11 本章小结...219
第10章 输入/输出...220
10.1 Java输入输出流...220
10.1.1 概述...220
10.1.2 标准输入输出例子...220
10.2 字节流和字符流...221
10.2.1 InputStream和Reader221
10.2.2 OutputStream和Writer222
10.2.3 缓冲输入文件...226
10.2.4 格式化的内存输入...227
10.3 文件操作类...228
10.3.1 创建一个新的文件对象...228
10.3.2 在实际编程中文件读写...229
10.3.3 RandomAccessFile类...233
10.3.3 Java的文件管理...237
10.4 对象序列化...239
10.4.1 序列化的含义和意义...239
10.4.2 使用对象流实现序列化...240
10.4.3 对象引用的序列化...242
10.5 用Zip进行多文件保存...244
10.6 NIO..246
10.6.1 使用Buffer246
10.6.2 使用Channel247
10.6.3 字符集和Charset248
10.6.4 文件锁...249
10.7 Java 7的NIO.2.251
10.7.1 文件及路径操作API251
10.7.2 使用FileVisitor遍历文件和目录...252
10.7.3 使用WatchService监控文件变化...253
10.7.4 访问文件属性...255
10.8 本章考试、面试问题分析...257
10.8.1 如何实现不对类中某些变量序列化?...257
10.8.2 什么是Java序列化,如何实现Java序列化? 257
10.8.3 Java中有几种类型的流?...257
10.8.4 在Java语言中,如何列出PC机文件系统中的所有驱动器名? 257
10.8.5 如何从键盘输入一个int/double/字符串?...257
10.9 实验9 流式I/O和文件...258
10.9.1 实验目的...258
10.9.2 实验要求...258
10.9.3 实验内容...258
10.10 本章小结...259
第11章 网络编程...260
11.1 网络编程的基础知识...260
11.1.1 连接的地址...260
11.1.2 端口号...261
11.2 网络编程的基础知识...261
11.2.1 Java网络模型...261
11.2.2 InetAddress类...261
11.2.3 使用URLDecoder和URLEncoder262
11.2.4 URL和URLConnection类...264
11.3 基于TCP协议的网络编程...265
11.3.1 TCP 协议...265
11.3.2 使用Socket进行通信...265
11.3.3 使用ServerSocket创建TCP服务器端...266
11.3.4 使用NIO实现非阻塞Socket通信...268
11.3.5 使用Java7 的AIO..271
11.4 基于UDP 协议的网络编程...276
11.4.1 UDP 协议基础...276
11.4.2 DatagramPacket276
11.4.3 DatagramSocket276
11.4.4 UDP实现客户端/服务器端通讯...277
11.5 Java访问网络资源...279
11.6 实验10 Java网络编程...280
11.6.1 实验目的...280
11.6.2 实验目的...280
11.6.3 实验内容...280
11.7 本章小结...281
第12章 Swing编程...282
12.1 Swing概述...282
12.2 Swing基本组件的用法...283
12.2.1 Swing的类层次结构...283
12.2.2 Swing组件的多样化...284
12.2.3 MVC(Model-View-Control)体系结构...284
12.2.4 可存取性支持...285
12.2.5 支持键盘操作...285
12.2.6 设置边框...285
12.2.7 使用图标(Icon)...286
12.2.8 Swing程序结构简介...286
12.3 Swing组件和容器...286
12.3.1 容器组件的分类...287
12.3.2 使用容器的基本规则...287
12.3.3 Swing事件模型...288
12.4 图解应用集成开发环境设计GUI程序...289
12.4.1 框架API概述...289
12.4.2 图解创建GUI程序...289
12.5 各种容器面板...293
12.5.1 分层面板(JLayeredPane)...293
12.5.2 面板(JPanel)...293
12.5.3 滚动窗口(JScrollPane)...295
12.5.4 选项板(JTabbedPane)...295
12.5.5 工具栏(JToolBar)...296
12.5.6 内部框架(JInternalFrame)...296
12.6 常用组件...296
12.6.1 按钮(JButton)...296
12.6.2 复选框(JCheckBox)...297
12.6.3 单选按钮(JRadioButton)...298
12.6.4 文件选择器(JFileChooser)...298
12.6.5 Java 7增强的JColorChooser301
12.6.6 标签(JLabel)...303
12.7 列表...304
12.7.1 使用List304
12.7.2 使用JComboBox.307
12.8 菜单...309
12.9 滑动条(JSlider)...309
12.10 进程条(JProgressBar)...309
12.11 表格(JTable)...311
12.11.1 TableModel311
12.11.2 表格的创建...311
12.12 使用JTree和TreeModel创建树...315
12.13 使用消息框...319
12.13.1 消息框(Messagebox)...319
12.13.2 确认对话框...321
12.13.3 选择对话框...321
12.13.4 信息提示对话框...321
12.13.5 数据录入对话框...321
12.14 使用文本区域...322
12.14.1 使用JTextPane.322
12.14.2 文件编辑器的创建...322
12.15 绘图...325
12.16 对话框(Dialog box)...327
12.17 选择外观(Look & Feel)...327
12.17.1 使用Look& Feel327
12.17.2 使用Java7的NimbusLook & Feel328
12.18 Java 7新增的Swing功能...328
12.18.1 使用JLayer装饰组件...328
12.18.2 创建透明、不规则形状窗口...331
12.19 本章考试、面试问题分析...333
12.20 实验11 建立图形用户界面...333
12.20.1 实验目的...333
12.20.2 实验要求...333
12.20.3 实验内容...333
12.21 本章小结...334
第13章 Applet设计...335
13.1 Applet简介...335
13.1.1 编写Applet小程序...335
13.1.2 Applet嵌入到网页...336
13.2 Applet基础...339
13.2.1 Applet类与JApplet类...339
13.2.2 Applet与Application的区别...339
13.2.3 Applet安全性...340
13.3 向Applet传递参数...340
13.4 将Application转化为Applet.341
13.4.1 Application程序...341
13.4.2 将Application转化为Applet343
13.4.3 Application与Applet组合...344
13.5 Applet与JAR文件...345
13.5.1 JAR文件概述...345
13.5.2 jar命令...346
13.5.3 为Applet数字签名...347
13.5.4 JNLP与JavaWeb Start350
13.6 本章考试、面试问题分析...355
13.7 实验12 Applet设计...355
13.8 本章小结...356
Java扩展功能把脉篇...357
第14章 Java图形图像编程...358
14.1 Java 2D..358
14.1.1 概述...358
14.1.2 图形、文本和图像增强功能...359
14.1.3 使用Java7 的GraphicsEnvironment359
14.2 基本图形绘制模型...360
14.2.1 坐标系统...360
14.2.2 变换...361
14.2.3 字体...361
14.2.4 图像...362
14.2.5 填充和笔画...362
14.2.6 复合...363
14.3 Java 2D API包...363
14.4 图形的绘制...365
14.4.1 接口和类...365
14.4.2 图形绘制过程...366
14.4.3 Stroke 属性...368
14.4.4 Fill 属性...368
14.4.5 剪切路径...368
14.4.6 变换...369
14.4.7 Composite 属性...369
14.5 设置Graphics2D上下文环境...370
14.5.1 指定Stroke 属性...370
14.5.2 指定 Fill属性...371
14.5.3 使用纹理填充形状...371
14.5.4 设置剪切路径...372
14.5.5 在Java2D中绘制各种样式的图形...372
14.5.6 设置Graphics2D 变换...376
14.5.7 指定复合样式...377
14.6 图形元素的绘制...379
14.6.1 绘制形状...379
14.6.2 填充形状...381
14.7 实现几何形状接口和类...381
14.8 几何...382
14.8.1 几何的概念...382
14.8.2 构造几何区域...383
14.9 字体和文本布局...387
14.9.1 接口和类...387
14.9.2 管理文本布局...388
14.9.3 定文本布局...388
14.9.4 双插入记号...389
14.9.5 移动插入记号...389
14.9.6 选中测试...389
14.9.7 显示所选内容...390
14.9.8 查询布局度量...390
14.9.9 绘制文本查询...390
14.10 Java 3D 介绍...392
14.10.1 Java 3D 的安装和运行...392
14.10.2 Java 3D 数据结构...393
14.10.3 VirtualUniverse.395
14.10.4 Java 3D的坐标系统...396
14.10.5 Java 3DAPI396
14.10.6 创建Java3D应用程序...398
14.11 BranchGroup 类...401
14.12 Canvas3D类...402
14.13 Transform3D 类...402
14.14 TransformGroup类...402
14.15 Vector3f 类...403
14.16 Primitive 类...405
14.17 OrbitBehavior类...405
14.18 Light类...406
14.18.1 光的类型...406
14.18.2 场景图中的光...406
14.18.3 材质特性...406
14.19 材质贴图...407
14.19.1 装入材质...407
14.19.2 粘贴到图像上...407
14.19.3 压缩和拉伸材质...407
14.19.4 材质贴图示例...408
14.20 Behavior 类...410
14.20.1 唤醒调用...410
14.20.2 processStimulus方法...411
14.20.3 旋转示例...411
14.21 Java 打印技术...414
14.21.1 打印控制类...414
14.21.2 打印机对话框...414
14.21.3 启动打印机...415
14.22 Java打印实例...416
14.22.1 打印图像和文本...416
14.22.2 打印文件...418
14.23 实验13 图形与多媒体处理...419
14.23.1 实验目的...419
14.23.2 实验要求...419
14.23.3 实验内容...419
14.24 本章小结...420
第15章 MySQL数据库与JDBC编程...421
15.1 JDBC基础...421
15.1.1 JDBC的用途...422
15.1.2 JDBC与ODBC和其他API的比较...422
15.1.3 两层模型和三层模型...423
15.1.4 SQL的一致性...423
15.1.5 JDBC 驱动程序的类型...424
15.2 安装MySql数据库...424
15.2.1 MySql的下载与安装...424
15.2.2 MySql图形界面工具的下载与安装...428
1.4.3 MySql图形界面工具...429
15.3 SQL语句基础...430
15.3.1 from子旬...430
15.3.2 select子句...430
15.3.3 聚集函数...431
15.3.4 where子句...431
15.3.5 表达式...431
15.3.6 表达式的使用...431
15.4 创建Connection对象...432
15.4.1 建立连接...432
15.4.2 发送SQL.433
15.4.3 事务隔离级别...433
15.4.4 驱动设置...433
15.5 使用Statement对象...435
15.5.1 创建Statement对象...435
15.5.2 使用Statement 对象执行语句...435
15.5.3 语句完成...435
15.5.4 关闭Statement对象...436
15.5.5 Statement对象中的SQL转义语法...436
15.6 使用ResultSet对象...436
15.6.1 行和光标的操作...436
15.6.2 列的操作...437
15.6.3 数据类型和转换...437
15.7 PreparedStatement 接口...437
15.7.1 创建PreparedStatement对象...438
15.7.2 传递IN参数...438
15.7.3 IN 参数中数据类型的一致性...438
15.8 CallableStatement 对象...439
15.8.1 创建CallableStatement 对象...439
15.8.2 IN和OUT参数...439
15.8.3 INOUT参数...439
15.8.4 先检索结果,再检索OUT参数...440
15.8.5 检索作为OUT参数的NULL值...440
15.9 JDBC 4.0新特性...440
15.9.1 自动加载驱动...440
15.9.2 RowId.441
15.9.3 SQL XML.442
15.9.4 SQLExcpetion 的增强...442
15.10 JDBC 4.1新特性...443
15.10.1 自动关闭相关资源...443
15.10.2 Java 7中的RowSetFactory与RowSet443
15.11 本章程序设计案例...444
15.11.1 数据库开发环境的搭建...444
15.11.2 操作数据库...446
15.12 本章考试、面试问题分析...448
15.12.1 Statement与PreparedStatement有什么区别? 448
15.12.2 Class.forName的作用?.448
15.12.3 JDO是什么?.448
15.12.4 JDBC向数据库中插入数据时为何有时中文字符会显示为乱码? 449
15.13 实验14 数据库的连接...449
15.13.1 实验目的...449
15.13.2 实验要求...449
15.13.3 实验内容...449
15.14 本章小结...450
Java项目实战把脉篇..451
第16章 MP3/MP4媒体播放器...452
16.1 在Applet中播放声音...452
16.1.1 Java声音处理...452
16.1.2 应用AudioClip接口来实现声音的播放...453
16.1.3 应用SoundAPI来处理声音...454
16.2 Java媒体框架...457
16.2.1 JMF系统介绍...457
16.2.2 数据源(Datasource)...458
16.2.3 捕获设备(CaptureDevice)...458
16.2.4 播放器(Player)...458
16.2.5 处理器(Processor)...459
16.2.6 数据池(DataSink)...460
16.2.7 数据格式(Format)...460
16.2.8 管理器(Manager)...460
16.3 MP3/MP4媒体播放器的设计...461
16.3.1 JMF的下载和安装...461
16.3.2 MP3/MP4媒体播放器设计分析...462
16.3.3 Player对象的扩展...463
16.3.4 MP3/MP4媒体播放器主程序的设计...465
第17章 远程实时监控系统...468
17.1 获取媒体数据的分析...468
17.1.1 注册音频和视频截取设备...468
17.1.2 获取音频和视频数据...469
17.1.3 保存摄像头数据为视频文件...470
17.1.4 摄像头拍照...472
17.1.5 通过网络发送实时媒体流数据...473
17.1.6 通过网络接收实时媒体流数据...475
17.2 网络实时流媒体收发系统的设计...477
17.2.1 Java网络流媒体播放器分析...477
17.2.2 媒体设备捕捉和发送类...478
17.2.3 媒体播放主程序类...484
17.2.4 同时接收多个流媒体类...487
17.3 本章小结...490
第18章 航空票务管理系统...491
18.1 系统需求说明...491
18.1.1 需求分析...491
18.1.2 主要用例说明...491
18.2 业务实体层设计...492
18.2.1 设计域模型...492
18.2.2 设计数据模型...493
18.3 系统设计...494
18.3.1 程序的实现...494
18.3.2 航空电子票务管理类...495
18.3.3 数据库连接类...501
18.3.4 每期航班座位信息类...503
18.3.5 航班管理类...508
18.3.6 航班简单查询类...511
18.3.7 综合信息查询类...518
18.3.8 定票管理类...530
18.3.9 定票客户信息类...542
18.3.10 退票管理类...548
18.3.11 查询客户已定票信息类...555
18.4 本章小结...558
第19章 即时通讯系统...559
19.1 概述...559
19.2 服务器用户数据库库设计...559
19.3 系统架构技术...560
19.4 即时通讯系统服务器设计...560
19.4.1 服务器协议设计...560
19.4.2 启动即时通讯系统服务器...572
19.4.3 实现多线程类监听类...572
19.5 即时通客户端设计...573
19.5.1 客户端主界面设计...573
19.5.2 系统托盘的设计...584
19.5.3 用户登录主程序...584
19.5.4 用户登录过程...587
19.5.5 用户申请号码...588
19.5.6 用户注册分析...591
19.5.7 查找并添加网友...593
19.5.8 添加网友程序分析...596
19.5.9 发送聊天信息...598
19.5.10 发送消息过程分析...600
19.5.11 接收聊天信息...600
19.5.12 查看好友详细信息...601
19.5.13 删除好友...602
19.6 本章总结...602