内容简介 · · · · · ·
本书从学习Java 7 编程的初学者角度出发,根据作者多年的程序设计经验,按照科学的学习规律,由浅
入深、循序渐进地向读者讲述Java 7 开发环境的搭建、Java 基础语法知识、Java 算法流程、面向对象高级特
性、Java 的输入/输出、多线程机制、Swing界面编程、Applet 的基本知识、Java 2D/3D、Java 流媒体、JDBC
编程等。同时每章都配有大量的程序设计案例和上机实验指导,包括实验目的、实验要求和实验内容;另每
章都有Java 开发过程中的问题集锦与解答,自我检测与实践以及经典考试、面试问题分析。书中也提供了
MP3/MP4媒体播放器、远程实时监控系统、航空票务管理系统和即时通讯系统应用案例,用于提高实践编程
能力,也可作为高年级学生的毕业设计案例。
本书可作为大中院校、培训机构的Java 教材,也可作为Java 初学...
本书从学习Java 7 编程的初学者角度出发,根据作者多年的程序设计经验,按照科学的学习规律,由浅
入深、循序渐进地向读者讲述Java 7 开发环境的搭建、Java 基础语法知识、Java 算法流程、面向对象高级特
性、Java 的输入/输出、多线程机制、Swing界面编程、Applet 的基本知识、Java 2D/3D、Java 流媒体、JDBC
编程等。同时每章都配有大量的程序设计案例和上机实验指导,包括实验目的、实验要求和实验内容;另每
章都有Java 开发过程中的问题集锦与解答,自我检测与实践以及经典考试、面试问题分析。书中也提供了
MP3/MP4媒体播放器、远程实时监控系统、航空票务管理系统和即时通讯系统应用案例,用于提高实践编程
能力,也可作为高年级学生的毕业设计案例。
本书可作为大中院校、培训机构的Java 教材,也可作为Java 初学者的入门指南和Java 自学者和用其他
语言编程人员的参考用书。
目录 · · · · · ·
第1 篇 Java 基础篇
第1 章 Java平台及开发环境的搭建························································································ 2
1.1 Windows 下Java 开发环境的配置···························································································· 2
1.1.1 相关软件介绍································································································································ 2
1.1.2 应用平台········································································································································ 3
· · · · · · (更多)
第1 篇 Java 基础篇
第1 章 Java平台及开发环境的搭建························································································ 2
1.1 Windows 下Java 开发环境的配置···························································································· 2
1.1.1 相关软件介绍································································································································ 2
1.1.2 应用平台········································································································································ 3
1.1.3 解析JDK 结构······························································································································ 4
1.2 Eclipse安装和使用····················································································································· 4
1.2.1 Eclipse 的下载和安装··················································································································· 4
1.2.2 MyEclipse 下载和安装················································································································· 5
1.3 JBuilder 集成开发环境介绍······································································································· 5
1.4 NetBeans 集成开发环境介绍····································································································· 6
1.5 本章小结····································································································································· 6
第2 章 理解Java语言············································································································· 7
2.1 Java 的发展历程························································································································· 7
2.1.1 Java 的现状···································································································································· 7
2.1.2 Java 语言的应用领域···················································································································· 8
2.1.3 Java 编程语言的主要目标············································································································ 8
2.1.4 Java JVM 虚拟机··························································································································· 8
2.1.5 垃圾收集机制································································································································ 9
2.1.6 Coin项目······································································································································· 9
2.2 Java 语言的特性······················································································································· 10
2.3 Java 中的面向对象编程··········································································································· 12
2.3.1 对象的定义及操作······················································································································ 12
2.3.2 抽象·············································································································································· 13
2.3.3 如何定义对象类·························································································································· 13
2.3.4 类和对象的关系·························································································································· 14
2.3.5 对象操作······································································································································ 14
2.3.6 封装·············································································································································· 15
2.3.7 继承与子类·································································································································· 15
2.3.8 多态·············································································································································· 16
2.3.9 模板/泛型(template/generic)·································································································· 17
2.3.10 注解············································································································································ 17
2.4 Java 程序结构··························································································································· 18
2.4.1 学习Java 应用程序的编写········································································································· 18
2.4.2 解析FirstHelloWorldApp.java···································································································· 18
2.4.3 编译并运行FirstHelloWorldApp ······························································································· 18
2.4.4 使用package 管理类··················································································································· 20
2.4.5 包的引用······································································································································ 21
2.4.6 目录布局及CLASSPATH环境变量························································································· 21
2.4.7 编译查错······································································································································ 22
2.4.8 从JDK到IDE····························································································································· 23
2.5 Java 与C/C++、C#的比较······································································································· 28
2.5.1 全局变量······································································································································ 28
2.5.2 goto··············································································································································· 29
2.5.3 指针·············································································································································· 29
2.5.4 内存管理······································································································································ 30
2.5.5 数据类型的支持·························································································································· 31
2.5.6 类型转换······································································································································ 31
2.5.7 头文件·········································································································································· 31
2.5.8 结构和联合·································································································································· 32
2.5.9 预处理·········································································································································· 32
2.6 本章考试、面试问题分析······································································································· 32
2.7 实验:Java运行环境的安装、配置与运行··········································································· 33
2.8 问题集锦与解答······················································································································· 36
2.9 自我检测··································································································································· 37
2.10 本章小结································································································································· 37
第3 章 Java标识符、关键字和类型······················································································ 38
3.1 Java 基本语法··························································································································· 38
3.1.1 程序注释······································································································································ 38
3.1.2 分号、块和空白块······················································································································ 40
3.1.3 标识符·········································································································································· 40
3.1.4 Java 关键字·································································································································· 41
3.1.5 Java 编码约定······························································································································ 42
3.2 数据类型··································································································································· 43
3.2.1 简单数据类型······························································································································ 43
3.2.2 复合数据类型······························································································································ 44
3.2.3 常量与变量·································································································································· 44
3.2.4 整型数据······································································································································ 45
3.2.5 浮点型(实型)数据·················································································································· 45
3.2.6 字符型数据·································································································································· 46
3.2.7 布尔型数据·································································································································· 47
3.2.8 枚举类型······································································································································ 48
3.3 二进制字面值··························································································································· 49
3.4 在数值字面量中使用下划线··································································································· 50
3.5 本章程序设计案例··················································································································· 50
3.6 本章考试、面试问题分析······································································································· 51
3.7 实验:Java标识符、关键字和类型练习··············································································· 52
3.8 问题集锦与解答······················································································································· 53
3.9 自我检测··································································································································· 53
3.10 本章小结································································································································· 54
第4 章 表达式和流控制·········································································································· 55
4.1 变量··········································································································································· 55
4.1.1 变量的声明和作用域·················································································································· 55
4.1.2 变量初始化·································································································································· 56
4.2 运算符······································································································································· 57
4.3 算术运算··································································································································· 58
4.3.1 二元算术运算符·························································································································· 58
4.3.2 一元算术运算符·························································································································· 58
4.3.3 整数计算······································································································································ 59
4.3.4 整数除法和余数·························································································································· 59
4.3.5 其他算术运算······························································································································ 59
4.3.6 混合运算自动类型转换·············································································································· 60
4.3.7 混合运算强制类型转换·············································································································· 61
4.4 逻辑关系运算··························································································································· 61
4.4.1 关系运算符·································································································································· 61
4.4.2 布尔逻辑运算符·························································································································· 62
4.5 位运算······································································································································· 63
4.5.1 位运算符······································································································································ 63
4.5.2 位移运算······································································································································ 63
4.5.3 位逻辑运算符······························································································································ 64
4.6 顺序结构··································································································································· 64
4.7 分支结构··································································································································· 65
4.7.1 条件语句if-else··························································································································· 65
4.7.2 多分支语句switch ······················································································································ 65
4.7.3 Java 7 的switch 分支语句········································································································ 67
4.8 循环结构··································································································································· 68
4.8.1 while 循环语句··························································································································· 68
4.8.2 do-while 循环语句······················································································································ 68
4.8.3 for 语句········································································································································ 69
4.9 控制循环结构··························································································································· 69
4.9.1 return 语句··································································································································· 69
4.9.2 continue语句······························································································································· 70
4.9.3 break 语句···································································································································· 70
4.9.4 带标签的break···························································································································· 72
4.9.5 带标签的continue ······················································································································· 72
4.9.6 各种控制语句在实际编程中的应用·························································································· 73
4.10 本章程序设计案例················································································································· 75
4.11 本章考试、面试问题分析····································································································· 76
4.12 实验:Java表达式和流控制练习························································································· 77
4.13 自我检测································································································································· 79
4.14 本章小结································································································································· 80
第5 章 数组和字符串············································································································· 81
5.1 一维数组··································································································································· 81
5.1.1 一维数组的定义·························································································································· 81
5.1.2 一维数组元素的引用·················································································································· 82
5.1.3 一维数组的初始化······················································································································ 83
5.1.4 一维数组在实际编程中的应用方法·························································································· 83
5.2 多维数组··································································································································· 84
5.2.1 二维数组的定义·························································································································· 84
5.2.2 二维数组元素的引用·················································································································· 84
5.2.3 二维数组的初始化······················································································································ 84
5.2.4 二维数组在实际编程中的应用·································································································· 85
5.2.5 复制数组······································································································································ 86
5.3 字符串······································································································································· 86
5.3.1 字符串字面量······························································································································ 86
5.3.2 String 对象的创建······················································································································· 87
5.4 字符串操作······························································································································· 87
5.4.1 字符串基本方法·························································································································· 87
5.4.2 字符串的比较······························································································································ 88
5.4.3 从字符串中提取子串·················································································································· 88
5.5 可变字符串······························································································································· 89
5.5.1 创建StringBuffer 对象················································································································ 89
5.5.2 使用StringBuffer 对象················································································································ 90
5.5.3 删除StringBuffer 对象················································································································ 90
5.5.4 StringBuffer 对象的容量············································································································· 91
5.6 本章考试、面试问题分析······································································································· 91
5.7 实验数组和字符串··················································································································· 92
5.8 问题集锦与解答······················································································································· 94
5.9 自我检测··································································································································· 95
5.10 本章小结································································································································· 95
第6 章 类、对象、包和接口·································································································· 96
6.1 类··············································································································································· 96
6.1.1 类的声明······································································································································ 96
6.1.2 类体·············································································································································· 97
6.2 定义方法··································································································································· 97
6.2.1 方法的返回值······························································································································ 98
6.2.2 方法的参数列表·························································································································· 98
6.3 构造方法··································································································································· 99
6.3.1 构造方法······································································································································ 99
6.3.2 默认构造方法······························································································································ 99
6.4 类成员·····································································································································100
6.4.1 成员变量···································································································································· 100
6.4.2 显式成员初始化························································································································ 101
6.4.3 单根(Singleton)类················································································································ 101
6.5 方法重载·································································································································102
6.5.1 多个构造方法···························································································································· 102
6.5.2 调用重载构造方法···················································································································· 102
6.6 对象·········································································································································103
6.6.1 对象生成···································································································································· 103
6.6.2 对象的使用································································································································ 103
6.6.3 构造函数的特点························································································································ 105
6.7 继承·········································································································································106
6.7.1 继承的概念································································································································ 106
6.7.2 继承定义···································································································································· 106
6.7.3 扩展类········································································································································ 107
6.7.4 属性继承与隐藏························································································································ 109
6.7.5 方法继承、覆盖与重载············································································································ 109
6.7.6 在子类中使用构造方法············································································································ 110
6.7.7 @Override 标记························································································································· 110
6.8 多态与动态绑定·····················································································································111
6.8.1 多态············································································································································ 111
6.8.2 动态绑定···································································································································· 112
6.8.3 父类对象与子类对象的使用与转化························································································ 112
6.8.4 Instanceof 运算符······················································································································ 113
6.8.5 多态性在实际编程中的应用···································································································· 113
6.8.6 泛型············································································································································ 114
6.8.7 Java 7 泛型的“菱形”语法····································································································· 116
6.8.8 构造方法的继承与重载············································································································ 117
6.8.9 参数可变的方法························································································································ 118
6.8.10 Java 7 优化变长参数的方法调用··························································································· 120
6.9 抽象类与抽象方法·················································································································120
6.9.1 抽象类········································································································································ 120
6.9.2 抽象方法···································································································································· 121
6.9.3 访问控制符································································································································ 122
6.10 包···········································································································································123
6.10.1 包的作用·································································································································· 123
6.10.2 包的创建·································································································································· 123
6.10.3 包的引用·································································································································· 123
6.10.4 向包中添加类·························································································································· 124
6.10.5 包的作用域······························································································································ 124
6.10.6 静态引用·································································································································· 124
6.11 接口·······································································································································125
6.11.1 接口概念·································································································································· 126
6.11.2 接口声明·································································································································· 126
6.11.3 接口的实现······························································································································ 127
6.12 静态变量······························································································································· 129
6.12.1 类(static)变量····················································································································· 129
6.12.2 类(static)方法····················································································································· 129
6.13 关键字final ···························································································································130
6.13.1 final 类····································································································································· 130
6.13.2 final 方法································································································································· 130
6.13.3 final 变量································································································································· 131
6.14 内部类···································································································································131
6.14.1 内部类定义······························································································································ 131
6.14.2 内部类属性······························································································································ 132
6.15 包装类···································································································································132
6.16 反射API································································································································133
6.16.1 反射API 特征························································································································· 133
6.16.2 反射机制应用实例·················································································································· 134
6.17 本章考试、面试问题分析···································································································135
6.18 实验:面向对象编程练习···································································································137
6.19 问题集锦与解答···················································································································140
6.20 自我检测······························································································································· 140
6.21 本章小结······························································································································· 141
第2 篇 Java 标准类包篇
第7 章 Java集合与工具类··································································································· 143
7.1 Java 集合·································································································································143
7.1.1 Java 语言的util类···················································································································· 143
7.1.2 Collection 接口·························································································································· 143
7.1.3 Collection 的功能方法·············································································································· 144
7.2 List 集合··································································································································145
7.2.1 LinkedList类····························································································································· 145
7.2.2 ArrayList 类······························································································································· 147
7.2.3 Vector 类···································································································································· 148
7.2.4 Stack 类····································································································································· 148
7.3 Set 集合···································································································································149
7.3.1 HashSet 类································································································································· 151
7.3.2 TreeSet 类·································································································································· 152
7.3.3 LinkedHashSet 类······················································································································ 152
7.3.4 EnumSet类································································································································ 153
7.4 Map 接口·································································································································154
7.4.1 Hashtable 类······························································································································· 155
7.4.2 HashMap 类······························································································································· 155
7.4.3 WeakHashMap 类······················································································································ 156
7.4.4 EnumMap 类······························································································································ 157
7.4.5 IdentityHashMap 类··················································································································· 157
7.5 Queue 集合······························································································································158
7.5.1 PriorityQueue 实现类················································································································ 159
7.5.2 LinkedList实现类····················································································································· 159
7.5.3 Deque 接口与ArrayDeque 实现类··························································································· 160
7.6 日期操作·································································································································162
7.6.1 Date 类······································································································································· 162
7.6.2 Calendar 类································································································································ 162
7.6.3 SimpleDateFormat 类················································································································ 163
7.7 Arrays 类··································································································································164
7.7.1 数组排序···································································································································· 164
7.7.2 数组填充···································································································································· 165
7.7.3 数组比较···································································································································· 165
7.7.4 数组复制···································································································································· 166
7.8 java.lang.Math 类和java.math 包···························································································167
7.8.1 java.lang.Math 类······················································································································· 167
7.8.2 java.math 包······························································································································· 167
7.9 Java Annotation ·······················································································································168
7.9.1 Java 注释···································································································································· 168
7.9.2 @Override 注释························································································································· 168
7.9.3 @Deprecated 注释····················································································································· 169
7.9.4 @SuppressWarnings 注释········································································································· 169
7.9.5 自定义注释································································································································ 170
7.10 常用类···································································································································171
7.10.1 Object 类·································································································································· 171
7.10.2 Java 7 新增的Objects 类········································································································ 171
7.10.3 Java 7 的ThreadLocalRandom 与Random ············································································ 172
7.10.4 BigDecimal ······························································································································ 172
7.10.5 使用Scanner 获取键盘输入··································································································· 173
7.10.6 使用BufferedReader 获取键盘输入······················································································ 174
7.10.7 System类································································································································· 174
7.10.8 Runtime类······························································································································· 176
7.11 本章考试、面试问题分析···································································································177
7.12 实验:集合类的使用···········································································································178
7.13 自我检测······························································································································· 180
7.14 本章小结······························································································································· 182
第8 章 异常处理·················································································································· 183
8.1 异常处理·································································································································183
8.1.1 异常的类型································································································································ 184
8.1.2 不捕捉异常································································································································ 184
8.2 异常处理机制·························································································································184
8.2.1 使用try-catch 捕获异常············································································································ 184
8.2.2 多个catch 子句························································································································· 185
8.2.3 try 语句的嵌套·························································································································· 186
8.2.4 Java 7 提供的多异常捕获········································································································· 186
8.2.5 Java 7 自动关闭资源的try 语句······························································································ 187
8.2.6 使用finally 回收资源··············································································································· 188
8.3 使用throw 抛出异常··············································································································189
8.3.1 throw 语句································································································································· 189
8.3.2 throws语句································································································································ 189
8.3.3 Java 7 增强的throw 语句········································································································· 190
8.4 异常分类·································································································································191
8.5 自定义异常·····························································································································192
8.6 本章考试、面试问题分析·····································································································193
8.7 实验:异常处理·····················································································································194
8.8 问题集锦与解答·····················································································································195
8.9 自我检测·································································································································195
8.10 本章小结······························································································································· 196
第9 章 多线程······················································································································ 197
9.1 多线程的概念·························································································································197
9.2 线程的创建和启动·················································································································198
9.2.1 继承Thread 类创建线程类······································································································ 198
9.2.2 实现Runnable接口创建线程类······························································································ 199
9.2.3 使用Callable 和Future 创建线程···························································································· 200
9.3 线程调度·································································································································201
9.4 线程的同步·····························································································································202
9.5 线程的基本控制·····················································································································203
9.5.1 显式定义线程···························································································································· 203
9.5.2 多线程例子································································································································ 204
9.5.3 启动一个线程···························································································································· 204
9.5.4 操作线程···································································································································· 205
9.5.5 暂停一个线程···························································································································· 205
9.5.6 停止一个线程···························································································································· 205
9.5.7 常用线程API ···························································································································· 205
9.6 线程池·····································································································································206
9.6.1 Java 5 实现的线程池················································································································· 206
9.6.2 Java 7 新增的ForkJoinPool ······································································································ 208
9.7 ThreadLocal 类························································································································210
9.8 本章考试、面试问题分析·····································································································212
9.9 实验:多线程·························································································································213
9.10 问题集锦与解答···················································································································214
9.11 本章小结······························································································································· 215
第10 章 输入/输出··············································································································· 216
10.1 Java 输入/输出流··················································································································216
10.1.1 概述·········································································································································· 216
10.1.2 标准输入/输出例子················································································································· 216
10.2 字节流和字符流···················································································································217
10.2.1 InputStream 和Reader············································································································· 217
10.2.2 OutputStream 和Writer··········································································································· 218
10.2.3 缓冲输入文件·························································································································· 222
10.2.4 格式化的内存输入·················································································································· 223
10.3 文件操作类···························································································································223
10.3.1 创建一个新的文件对象·········································································································· 224
10.3.2 在实际编程中读写文件·········································································································· 225
10.3.3 RandomAccessFile 类·············································································································· 229
10.3.4 Java 的文件管理······················································································································ 233
10.4 对象序列化···························································································································235
10.4.1 序列化的含义和意义·············································································································· 235
10.4.2 使用对象流实现序列化·········································································································· 236
10.4.3 对象引用的序列化·················································································································· 238
10.5 用Zip 进行多文件保存········································································································239
10.6 NIO ········································································································································241
10.6.1 使用Buffer ······························································································································ 242
10.6.2 使用Channel ··························································································································· 243
10.6.3 字符集和Charset····················································································································· 244
10.6.4 文件锁······································································································································ 245
10.7 Java 7 的NIO2 ······················································································································247
10.7.1 文件及路径操作API ·············································································································· 248
10.7.2 使用FileVisitor 遍历文件和目录·························································································· 248
10.7.3 使用WatchService 监控文件变化························································································· 250
10.7.4 访问文件属性·························································································································· 252
10.8 本章考试、面试问题分析···································································································253
10.9 实验:流式I/O和文件········································································································254
10.10 本章小结·····························································································································255
第11 章 网络编程················································································································ 256
11.1 网络编程的基础知识···········································································································256
11.1.1 连接的地址······························································································································ 256
11.1.2 端口号······································································································································ 257
11.2 Java 网络通信模型···············································································································257
11.2.1 Java 网络模型·························································································································· 257
11.2.2 InetAddress 类························································································································· 257
11.2.3 使用URLDecoder 类和URLEncoder 类··············································································· 259
11.2.4 URL类和URLConnection 类································································································ 260
11.3 基于TCP协议的网络编程··································································································261
11.3.1 TCP协议································································································································· 261
11.3.2 使用Socket 进行通信············································································································· 261
11.3.3 使用ServerSocket 创建TCP服务器端················································································· 263
11.3.4 使用NIO 实现非阻塞Socket 通信························································································ 264
11.3.5 使用Java 7 的AIO·················································································································· 267
11.4 基于UDP 协议的网络编程·································································································272
11.4.1 UDP协议基础························································································································· 272
11.4.2 DatagramPacket ······················································································································· 272
11.4.3 DatagramSocket ······················································································································· 273
11.4.4 UDP实现客户端/服务器端通讯···························································································· 273
11.5 Java 访问网络资源···············································································································275
11.6 实验:Java网络编程···········································································································276
11.7 本章小结······························································································································· 277
第12 章 Swing 编程············································································································· 278
12.1 Swing 概述····························································································································278
12.2 Swing 基本组件的用法········································································································279
12.2.1 Swing的类层次结构··············································································································· 279
12.2.2 Swing组件的多样化··············································································································· 280
12.2.3 MVC(Model-View-Control)体系结构··············································································· 280
12.2.4 可存取性支持·························································································································· 280
12.2.5 支持键盘操作·························································································································· 281
12.2.6 设置边框·································································································································· 281
12.2.7 使用图标(Icon)··················································································································· 281
12.2.8 Swing程序结构简介··············································································································· 282
12.3 Swing 组件和容器················································································································282
12.3.1 容器组件的分类······················································································································ 282
12.3.2 使用容器的基本规则·············································································································· 283
12.3.3 Swing事件模型······················································································································· 284
12.4 图解应用集成开发环境设计GUI程序··············································································285
12.4.1 框架API 概述························································································································· 285
12.4.2 图解创建GUI 程序················································································································· 285
12.5 各种容器面板·······················································································································288
12.5.1 分层面板(JLayeredPane)··································································································· 289
12.5.2 面板(JPanel)······················································································································· 289
12.5.3 滚动窗口(JScrollPane)······································································································· 291
12.5.4 选项板(JTabbedPane)········································································································ 291
12.5.5 工具栏(JToolBar)··············································································································· 291
12.5.6 内部框架(JInternalFrame)·································································································· 291
12.6 常用组件······························································································································· 292
12.6.1 按钮(JButton)····················································································································· 292
12.6.2 复选框(JCheckBox)··········································································································· 293
12.6.3 单选按钮(JRadioButton)···································································································· 293
12.6.4 文件选择器(JFileChooser)································································································· 293
12.6.5 Java 7 增强的JColorChooser·································································································· 296
12.6.6 标签(JLabel)······················································································································· 298
12.7 列表·······································································································································298
12.7.1 使用List··································································································································· 298
12.7.2 使用JComboBox····················································································································· 302
12.8 菜单·······································································································································303
12.9 滑动条(JSlider)················································································································304
12.10 进程条(JProgressBar)····································································································304
12.11 表格(JTable)···················································································································305
12.11.1 TableModel ···························································································································· 305
12.11.2 表格的创建···························································································································· 306
12.12 使用JTree 和TreeModel 创建树·······················································································310
12.13 使用消息框·························································································································313
12.13.1 消息框(Message box)······································································································· 313
12.13.2 确认对话框···························································································································· 315
12.13.3 选择对话框···························································································································· 315
12.13.4 信息提示对话框···················································································································· 315
12.13.5 数据录入对话框···················································································································· 316
12.14 使用文本区域·····················································································································316
12.14.1 使用JTextPane ······················································································································ 316
12.14.2 文件编辑器的创建················································································································ 317
12.15 绘图·····································································································································319
12.16 对话框(Dialog box)·······································································································321
12.17 选择外观(Look and Feel)······························································································322
12.17.1 使用Pluggable Look and Feel······························································································· 322
12.17.2 使用Java 7 的Nimbus Look and Feel·················································································· 322
12.18 Java 7 新增的Swing 功能··································································································323
12.18.1 使用JLayer 装饰组件··········································································································· 323
12.18.2 创建透明、不规则形状窗口································································································ 325
12.19 本章考试、面试问题分析·································································································327
12.20 实验:建立图形用户界面·································································································327
12.21 本章小结·····························································································································328
第13 章 Applet 设计············································································································ 329
13.1 Applet 简介···························································································································329
13.1.1 编写Applet 小程序················································································································· 329
13.1.2 把Applet 嵌入到网页············································································································· 330
13.2 Applet 基础···························································································································332
13.2.1 Applet 类与JApplet 类··········································································································· 332
13.2.2 Applet 与Application 的区别································································································· 333
13.2.3 Applet 安全性·························································································································· 334
13.3 向Applet 传递参数··············································································································334
13.4 将Application 转化为Applet ······························································································335
13.4.1 Application程序······················································································································ 335
13.4.2 将Application 转化为Applet 的具体方法············································································ 337
13.4.3 Application 与Applet 组合····································································································· 338
13.5 Applet 与JAR文件··············································································································339
13.5.1 JAR文件概述·························································································································· 339
13.5.2 jar 命令····································································································································· 340
13.5.3 为Applet 生成数字签名········································································································· 341
13.5.4 JNLP与Java Web Start ·········································································································· 344
13.6 本章考试、面试问题分析···································································································349
13.7 实验:Applet 设计···············································································································349
13.8 本章小结······························································································································· 350
第3 篇 Java 扩展功能篇
第14 章 Java图形图像编程································································································· 352
14.1 Java 2D API···························································································································352
14.1.1 概述·········································································································································· 352
14.1.2 图形、文本和图像增强功能·································································································· 353
14.1.3 使用Java 7 的GraphicsEnvironment ····················································································· 353
14.2 基本图形绘制模型···············································································································354
14.2.1 坐标系统·································································································································· 354
14.2.2 变换·········································································································································· 355
14.2.3 字体·········································································································································· 355
14.2.4 图像·········································································································································· 356
14.2.5 填充和笔画······························································································································ 356
14.2.6 复合·········································································································································· 357
14.3 Java 2D API 包······················································································································357
14.4 图形的绘制···························································································································359
14.4.1 接口和类·································································································································· 359
14.4.2 图形绘制过程·························································································································· 360
14.4.3 Stroke 属性······························································································································ 362
14.4.4 Fill属性··································································································································· 362
14.4.5 剪切路径·································································································································· 362
14.4.6 变换·········································································································································· 363
14.4.7 Composite属性······················································································································· 363
14.5 设置Graphics2D 上下文环境······························································································364
14.5.1 指定Stroke 属性····················································································································· 364
14.5.2 指定Fill属性·························································································································· 365
14.5.3 使用纹理填充形状·················································································································· 365
14.5.4 设置剪切路径·························································································································· 366
14.5.5 在Java 2D 中绘制各种样式的图形······················································································· 366
14.5.6 设置Graphics2D 变换············································································································ 370
14.5.7 指定复合样式·························································································································· 371
14.6 图形元素的绘制···················································································································373
14.6.1 绘制形状·································································································································· 373
14.6.2 填充形状·································································································································· 374
14.7 实现几何形状接口和类·······································································································375
14.8 几何·······································································································································376
14.8.1 几何的概念······························································································································ 376
14.8.2 构造几何区域·························································································································· 376
14.9 字体和文本布局···················································································································381
14.9.1 接口和类·································································································································· 381
14.9.2 管理文本布局·························································································································· 381
14.9.3 确定文本布局·························································································································· 382
14.9.4 双插入记号······························································································································ 382
14.9.5 移动插入记号·························································································································· 383
14.9.6 选择测试·································································································································· 383
14.9.7 显示所选内容·························································································································· 383
14.9.8 查询布局度量·························································································································· 384
14.9.9 绘制文本查询·························································································································· 384
14.10 Java 3D API·························································································································386
14.10.1 Java 3D 的安装和运行·········································································································· 386
14.10.2 Java 3D 数据结构·················································································································· 387
14.10.3 Virtual Universe ····················································································································· 389
14.10.4 Java 3D 的坐标系统·············································································································· 389
14.10.5 Java 3D API ··························································································································· 390
14.10.6 创建Java 3D 应用程序········································································································· 391
14.11 BranchGroup 类···················································································································395
14.12 Canvas3D 类························································································································395
14.13 Transform3D 类···················································································································395
14.14 TransformGroup 类·············································································································396
14.15 Vector3f 类··························································································································396
14.16 Primitive 类·························································································································398
14.17 OrbitBehavior 类·················································································································398
14.18 Light 类································································································································399
14.18.1 光的类型································································································································ 399
14.18.2 场景图中的光························································································································ 399
14.18.3 材质特性································································································································ 399
14.19 材质贴图·····························································································································400
14.19.1 装入材质································································································································ 400
14.19.2 粘贴到图像上························································································································ 400
14.19.3 压缩和拉伸材质···················································································································· 400
14.19.4 材质贴图示例························································································································ 401
14.20 Behavior 类··························································································································403
14.20.1 唤醒调用································································································································ 404
14.20.2 processStimulus 方法············································································································· 404
14.20.3 旋转示例································································································································ 404
14.21 Java 打印技术·····················································································································407
14.21.1 打印控制类···························································································································· 407
14.21.2 打印机对话框························································································································ 407
14.21.3 启动打印机···························································································································· 409
14.22 Java 打印实例·····················································································································409
14.22.1 打印图像和文本···················································································································· 409
14.22.2 打印文件································································································································ 411
14.23 实验:图形与多媒体处理·································································································412
14.24 本章小结·····························································································································413
第15 章 MySQL 数据库与JDBC 编程················································································· 414
15.1 JDBC 基础·····························································································································414
15.1.1 JDBC的用途··························································································································· 415
15.1.2 JDBC与ODBC和其他API的比较····················································································· 415
15.1.3 两层模型和三层模型·············································································································· 416
15.1.4 SQL的一致性························································································································· 416
15.1.5 JDBC驱动程序的类型··········································································································· 417
15.2 安装MySQL数据库············································································································417
15.2.1 MySQL的下载与安装············································································································ 417
15.2.2 MySQL图形界面工具的下载与安装···················································································· 422
15.2.3 MySQL图形界面工具············································································································ 423
15.3 SQL 语句基础·······················································································································424
15.3.1 from 子句································································································································· 424
15.3.2 select 子句································································································································ 424
15.3.3 聚集函数·································································································································· 425
15.3.4 where 子句······························································································································· 425
15.3.5 表达式······································································································································ 425
15.3.6 表达式的使用·························································································································· 425
15.4 创建Connection 对象···········································································································426
15.4.1 建立连接·································································································································· 427
15.4.2 发送SQL ································································································································· 427
15.4.3 事务隔离级别·························································································································· 427
15.4.4 驱动设置·································································································································· 428
15.5 使用Statement 对象·············································································································429
15.5.1 创建Statement对象················································································································ 429
15.5.2 使用 Statement 对象执行语句······························································································· 429
15.5.3 语句完成·································································································································· 430
15.5.4 关闭Statement对象················································································································ 430
15.5.5 Statement对象中的SQL转义语法······················································································· 430
15.6 使用ResultSet 对象··············································································································430
15.6.1 行和光标的操作······················································································································ 431
15.6.2 列的操作·································································································································· 431
15.6.3 数据类型和转换······················································································································ 431
15.7 PreparedStatement 接口········································································································432
15.7.1 创建PreparedStatement 对象·································································································· 432
15.7.2 传递IN 参数···························································································································· 432
15.7.3 IN 参数中数据类型的一致性································································································· 432
15.8 CallableStatement 对象·········································································································433
15.8.1 创建CallableStatement 对象·································································································· 433
15.8.2 IN 和OUT 参数······················································································································ 433
15.8.3 INOUT 参数···························································································································· 434
15.8.4 检索OUT 参数························································································································ 434
15.8.5 检索作为OUT 参数的NULL 值··························································································· 434
15.9 JDBC 4.0新特性···················································································································435
15.9.1 自动加载驱动·························································································································· 435
15.9.2 RowId······································································································································· 435
15.9.3 SQL XML ································································································································ 436
15.9.4 SQLExcpetion 的增强············································································································ 436
15.10 JDBC 4.1 新特性···············································································································437
15.10.1 自动关闭相关资源················································································································ 437
15.10.2 Java 7 中的RowSetFactory 与RowSet ················································································ 437
15.11 本章程序设计案例·············································································································439
15.11.1 数据库开发环境的搭建········································································································ 439
15.11.2 操作数据库···························································································································· 440
15.12 本章考试、面试问题分析·································································································442
15.13 实验:数据库的连接·········································································································443
15.14 本章小结·····························································································································444
第4 篇 Java 项目实战篇
第16 章 MP3/MP4媒体播放器···························································································· 446
16.1 在Applet 中播放声音··········································································································446
16.1.1 Java 声音处理·························································································································· 446
16.1.2 应用AudioClip接口来实现声音的播放··············································································· 447
16.1.3 应用Sound API来处理声音·································································································· 448
16.2 Java 媒体框架·······················································································································451
16.2.1 JMF系统介绍························································································································· 451
16.2.2 数据源(Data source)··········································································································· 452
16.2.3 捕获设备(Capture Device)································································································· 452
16.2.4 播放器(Player)···················································································································· 452
16.2.5 处理器(Processor)·············································································································· 453
16.2.6 数据池(DataSink)··············································································································· 454
16.2.7 数据格式(Format)·············································································································· 454
16.2.8 管理器(Manager)················································································································ 454
16.3 MP3/MP4 媒体播放器的设计······························································································455
16.3.1 JMF的下载和安装················································································································· 455
16.3.2 MP3/MP4媒体播放器设计分析···························································································· 456
16.3.3 Player 对象的扩展··················································································································· 457
16.3.4 MP3/MP4媒体播放器主程序的设计···················································································· 459
第17 章 远程实时监控系统·································································································· 462
17.1 获取媒体数据的分析···········································································································462
17.1.1 注册音频和视频截取设备······································································································ 462
17.1.2 获取音频和视频数据·············································································································· 463
17.1.3 保存摄像头数据为视频文件·································································································· 464
17.1.4 摄像头拍照······························································································································ 466
17.1.5 通过网络发送实时媒体流数据······························································································ 467
17.1.6 通过网络接收实时媒体流数据······························································································ 469
17.2 网络实时流媒体收发系统的设计·······················································································471
17.2.1 Java 网络流媒体播放器分析·································································································· 471
17.2.2 媒体设备捕捉和发送类·········································································································· 472
17.2.3 媒体播放主程序类·················································································································· 478
17.2.4 同时接收多个流媒体类·········································································································· 481
17.3 本章小结······························································································································· 484
第18 章 航空票务管理系统·································································································· 485
18.1 系统需求说明·······················································································································485
18.1.1 需求分析·································································································································· 485
18.1.2 主要用例说明·························································································································· 485
18.2 业务实体层设计···················································································································486
18.2.1 设计域模型······························································································································ 486
18.2.2 设计数据模型·························································································································· 487
18.3 系统设计······························································································································· 488
18.3.1 程序的实现······························································································································ 488
18.3.2 航空电子票务管理类·············································································································· 489
18.3.3 数据库连接类·························································································································· 495
18.3.4 每期航班座位信息类·············································································································· 497
18.3.5 航班管理类······························································································································ 502
18.3.6 航班简单查询类······················································································································ 505
18.3.7 综合信息查询类······················································································································ 511
18.3.8 定票管理类······························································································································ 523
18.3.9 定票客户信息类······················································································································ 535
18.3.10 退票管理类···························································································································· 541
18.3.11 查询客户已定票信息类········································································································ 548
18.4 本章小结······························································································································· 551
第19 章 即时通信系统········································································································· 552
19.1 概述·······································································································································552
19.2 服务器用户数据库设计·······································································································552
19.3 系统架构技术·······················································································································553
19.4 即时通信系统服务器设计···································································································553
19.4.1 服务器协议设计······················································································································ 553
19.4.2 启动即时通信系统服务器······································································································ 565
19.4.3 实现多线程类监听类·············································································································· 566
19.5 即时通客户端设计···············································································································566
19.5.1 客户端主界面设计·················································································································· 566
19.5.2 系统托盘的设计······················································································································ 578
19.5.3 用户登录主程序······················································································································ 578
19.5.4 用户登录过程·························································································································· 581
19.5.5 用户申请号码·························································································································· 582
19.5.6 用户注册分析·························································································································· 585
19.5.7 查找并添加网友······················································································································ 587
19.5.8 添加网友程序分析·················································································································· 590
19.5.9 发送聊天信息·························································································································· 593
19.5.10 发送消息过程分析················································································································ 594
19.5.11 接收聊天信息························································································································ 594
19.5.12 查看好友详细信息················································································································ 596
19.5.13 删除好友································································································································ 597
19.6 本章总结······························································································································· 597
· · · · · · (收起)
"Java 7从入门到精通"试读 · · · · · ·
第6章 类、对象、包和接口 类的定义 继承的定义 多态与动态绑定 抽象类与抽象方法 包与接口的定义 静态变量与内部类 在前面几章中,对Java的简单数据类型、数组、运算符作了详细的介绍。从本章开始,要深入讲解面向对象编程的概念。首先讲述类的基本概念及要点,然后讨论Java中的对象、包和接口。 6.1 类 Java编程语言中的抽象数据类型概念被...
还没人写过短评呢
还没人写过短评呢