标题：Java参考大全
Java参考大全
（J2SE 5 Edition） 
图书作者：[美] Herbert Schildt 著 鄢爱兰、鹿江春 译 
出版社：清华大学出版社 
ISBN：7302120218 
出版时间：2006-1第1版 
印刷时间：2006-1第1次印刷 
开 本：16 
价 格（元）：78
图片简介
本书是世界级程序设计大师Herbert Schildt的作品，全面介绍了Java语言、Java标准库和Java开发环境。
全书从Java语言的基础知识入手，内容涵盖了J2SE 5中的新增特性，如泛型、自动装箱、枚举、元数据、并发类库等。本书共分为4个部分，第1部分介绍Java语言，第2部分讨论标准Java库，第3部分探讨Java开发环境，第4部分是Java的开发实例，各部分前后衔接，联系紧密。
本书是Java语言及其核心库的完全参考指南，无论是Java编程新手还是有丰富经验的专业人员，都可从本书受益。
目录
第1部分 Java语言 
第1章 Java的起源 3 
1.1 Java的由来 3 
1.1.1 现代编程语言的诞生：C 3 
1.1.2 C++：更上一层楼 4 
1.1.3 Java出现的时机已经到来 5 
1.2 Java的诞生 5 
1.3 Java对Internet的重要性 6 
1.3.1 Java applet 7 
1.3.2 安全性 7 
1.3.3 可移植性 7 
1.4 Java的魔力：字节码 7 
1.5 Java专门用语 8 
1.5.1 简单 9 
1.5.2 面向对象 9 
1.5.3 健壮 9 
1.5.4 多线程 9 
1.5.5 体系结构中立 9 
1.5.6 解释执行和高性能 10 
1.5.7 分布式 10 
1.5.8 动态 10 
1.6 Java的演化 10 
1.7 J2SE 5的革命 11 
1.8 文化革新 11 
第2章 Java语言概述 12 
2.1 面向对象编程 12 
2.1.1 两种范型 12 
2.1.2 抽象 12 
2.1.3 面向对象编程的3个原则 13 
2.2 第1个简单程序 17 
2.2.1 键入程序 17 
2.2.2 编译程序 17 
2.2.3 详细讨论第1个示例程序 18 
2.3 第2个示例程序 19 
2.4 两条控制语句 20 
2.4.1 if语句 21 
2.4.2 for循环 21 
2.5 使用程序块 23 
2.6 基本词汇 24 
2.6.1 空白分隔符 24 
2.6.2 标识符 24 
2.6.3 字面量 24 
2.6.4 注释 24 
2.6.5 分隔符 25 
2.6.6 Java关键词 25 
2.6.7 Java类库 25 
第3章 数据类型、变量和数组 26 
3.1 Java语言是一种强类型语言 26 
3.2 基本类型 26 
3.3 整型 27 
3.3.1 字节型 27 
3.3.2 短整型 27 
3.3.3 int 28 
3.3.4 长整型 28 
3.4 浮点型 28 
3.4.1 单精度浮点型 29 
3.4.2 双精度浮点型 29 
3.5 字符 29 
3.6 布尔型 30 
3.7 深入分析字面量 31 
3.7.1 整数字面量 31 
3.7.2 浮点字面量 31 
3.7.3 布尔型字面量 32 
3.7.4 字符字面量 32 
3.7.5 字符串字面量 32 
3.8 变量 33 
3.8.1 声明一个变量 33 
3.8.2 动态初始化 33 
3.8.3 变量的作用域和生命周期 33 
3.9 类型转换与强制转换 35 
3.9.1 Java的自动转换 35 
3.9.2 强制转换不兼容的类型 36 
3.10 表达式中的自动类型提升 37 
3.11 数组 38 
3.11.1 一维数组 38 
3.11.2 多维数组 40 
3.11.3 另一种数组声明语法 43 
3.12 关于字符串的几点解释 43 
3.13 C/C++程序员请注意指针的用法 44 
第4章 运算符 45 
4.1 算术运算符 45 
4.1.1 基本算术运算符 45 
4.1.2 模运算符 46 
4.1.3 算术赋值运算符 47 
4.1.4 递增和递减运算 48 
4.2 位运算符 49 
4.2.1 位逻辑运算符 50 
4.2.2 左移 51 
4.2.3 右移 52 
4.2.4 无符号右移 53 
4.2.5 位运算符赋值 54 
4.3 关系运算符 55 
4.4 布尔逻辑运算符 56 
4.5 赋值运算符 57 
4.6 ？运算符 58 
4.7 运算符优先级 58 
4.8 使用圆括号 59 
第5章 程序控制语句 60 
5.1 Java的选择语句 60 
5.1.1 if语句 60 
5.1.2 switch 62 
5.2 迭代语句 66 
5.2.1 while 66 
5.2.2 do-while 67 
5.2.3 for 69 
5.2.4 for循环的一些变化 71 
5.3 for循环的For-Each版本 72 
5.3.1 多维数组上的迭代 74 
5.3.2 应用增强的for 75 
5.3.3 循环嵌套 76 
5.4 跳转语句 76 
5.4.1 使用break 76 
5.4.2 使用continue 79 
5.4.3 return 80 
第6章 介绍类 82 
6.1 类的基础 82 
6.1.1 类的一般形式 82 
6.1.2 简单的类 83 
6.2 声明对象 85 
6.3 给对象引用变量赋值 86 
6.4 介绍方法 87 
6.4.1 给Box类添加一个方法 87 
6.4.2 返回值 89 
6.4.3 添加一个带有参数的方法 90 
6.5 构造函数 92 
6.6 this关键词 94 
6.7 垃圾收集 95 
6.8 finalize（）方法 95 
6.9 堆栈类 96 
第7章 方法和类详述 98 
7.1 重载方法 98 
7.2 把对象作为参数使用 102 
7.3 参数传递 104 
7.4 返回对象 105 
7.5 递归 106 
7.6 访问控制 108 
7.7 关键词static 110 
7.8 关键词final 111 
7.9 数组 112 
7.10 嵌套类和内部类 113 
7.11 String类 115 
7.12 使用命令行参数 117 
7.12.1 Varargs：变长参数 118 
7.12.2 重载Vararg方法 120 
7.12.3 Varargs和模糊性 121 
第8章 继承 123 
8.1 继承的基础知识 123 
8.1.1 成员访问和继承 124 
8.1.2 一个更实用的示例 125 
8.1.3 超类变量可以引用子类对象 127 
8.2 super 127 
8.2.1 使用super调用超类构造函数 128 
8.2.2 Super的第二种用法 130 
8.3 创建多级层次结构 131 
8.4 何时调用构造函数 133 
8.5 方法重写 134 
8.6 动态方法调度 136 
8.6.1 为什么重写方法 137 
8.6.2 应用方法重写 138 
8.7 抽象类 139 
8.8 在继承中使用final 141 
8.8.1 使用final来阻止重写 141 
8.8.2 使用final阻止继承 142 
8.9 Object类 142 
第9章 包和接口 143 
9.1 包 143 
9.1.1 定义一个包 143 
9.1.2 查找包和CLASSPATH 144 
9.1.3 一个简短的包示例 144 
9.2 访问保护 145 
9.3 导入包 148 
9.4 接口 149 
9.4.1 接口定义 150 
9.4.2 实现接口 150 
9.4.3 应用接口 152 
9.4.4 接口中的变量 155 
9.4.5 可以扩展的接口 156 
第10章 异常处理 158 
10.1 异常处理基础知识 158 
10.2 异常类型 159 
10.3 未捕获的异常 159 
10.4 try和catch 160 
10.5 多条catch语句 161 
10.6 嵌套的try语句 162 
10.7 throw 164 
10.8 throws 165 
10.9 finally 166 
10.10 Java内置的异常 167 
10.11 创建自己的异常子类 168 
10.12 链式异常 170 
10.13 使用异常 171 
第11章 多线程编程 172 
11.1 Java的线程模型 173 
11.1.1 线程的优先级 173 
11.1.2 同步 173 
11.1.3 消息 174 
11.1.4 Thread 类和Runnable 接口 174 
11.2 主线程 174 
11.3 创建一个线程 176 
11.3.1 实现Runnable接口 176 
11.3.2 扩展线程 177 
11.3.3 选择一种方法 178 
11.4 创建多线程 179 
11.5 使用isAlive（）和join() 180 
11.6 线程的优先级 182 
11.7 同步 184 
11.7.1 使用同步方法 184 
11.7.2 同步语句 186 
11.8 线程间通信 187 
11.9 暂停、恢复和停止线程 192 
11.9.1 Java 1.1以及之前版本使用的暂停、 
恢复和停止线程的方法 192 
11.9.2 暂停、恢复和停止 
线程的方法 194 
11.10 使用多线程 195 
第12章 枚举、自动装箱和元数据（注释） 196 
12.1 枚举 196 
12.1.1 枚举的基础知识 196 
12.1.2 values（）和valueOf（）方法 198 
12.1.3 Java枚举是类类型 199 
12.1.4 枚举继承Enum 200 
12.1.5 一个枚举例子 202 
12.2 类型包装器 203 
12.2.1 Character包装器 203 
12.2.2 Boolean包装器 203 
12.2.3 数字类型包装器 204 
12.3 自动装箱 205 
12.3.1 自动装箱与方法 205 
12.3.2 表达式中的自动装/拆箱 206 
12.3.3 对布尔型和字符型值的 
自动装/拆箱 207 
12.3.4 自动装/拆箱有助于 
防止发生错误 208 
12.3.5 一点警告 208 
12.4 元数据（注释） 208 
12.4.1 注释的基础知识 209 
12.4.2 指定一个保留策略 209 
12.4.3 使用映射在运行时获得注释 210 
12.4.4 AnnotatedElement 接口 213 
12.4.5 使用默认值 214 
12.4.6 标记注释 215 
12.4.7 单成员注释 215 
12.4.8 内置注释 216 
12.4.9 一些限制 217 
第13章 输入/输出、Applet和其他主题 218 
13.1 输入/输出基础 218 
13.1.1 流 218 
13.1.2 字节流和字符流 218 
13.1.3 预定义流 220 
13.2 读取控制台输入 220 
13.2.1 读取字符 221 
13.2.2 读取字符串 222 
13.3 向控制台写输出 223 
13.4 PrintWriter类 223 
13.5 读写文件 224 
13.6 applet基础 227 
13.7 transient和volatile修饰符 228 
13.8 使用instanceof 229 
13.9 strictfp 231 
13.10 本地方法 231 
13.11 使用assert 234 
13.12 静态输入 236 
第14章 泛型 238 
14.1 何为泛型 238 
14.2 一个关于泛型的简单例子 239 
14.2.1 泛型只使用对象 241 
14.2.2 泛型的差别是基于类型参数 241 
14.2.3 泛型如何增强类型安全 242 
14.3 带两个类型参数的泛型类 243 
14.4 泛型类的一般形式 244 
14.5 有界类型 245 
14.6 使用通配符参数 246 
14.7 创建一个泛型方法 252 
14.8 泛型接口 254 
14.9 原始类型和遗留代码 256 
14.10 泛型类层次 258 
14.10.1 使用泛型超类 258 
14.10.2 泛型子类 259 
14.10.3 泛型层次中的运行时 
类型比较 260 
14.10.4 强制转换 262 
14.10.5 重写泛型类中的方法 263 
14.11 擦拭 264 
14.12 模糊错误 266 
14.13 泛型的一些局限 267 
14.13.1 类型参数不能被实例化 267 
14.13.2 静态成员方面的局限 268 
14.13.3 泛型数组的局限 268 
14.13.4 泛型异常局限 269 
14.14 有关泛型的最后思考 269 
第2部分 Java库 
第15章 字符串处理 273 
15.1 String构造函数 273 
15.2 字符串的长度 275 
15.3 特殊的字符串操作 275 
15.3.1 字符串字面量 275 
15.3.2 字符串的连接 276 
15.3.3 字符串与其他数据类型的 
连接 276 
15.3.4 字符串转换和toString() 277 
15.4 字符截取 278 
15.4.1 charAt() 278 
15.4.2 getChars() 278 
15.4.3 getBytes() 279 
15.4.4 toCharArray() 279 
15.5 字符串比较 279 
15.5.1 equals（）和 equalsIgnoreCase() 279 
15.5.2 regionMatches() 280 
15.5.3 startsWith（）和endsWith() 280 
15.5.4 equals（）与== 280 
15.5.5 compareTo() 281 
15.6 搜索字符串 282 
15.7 修改字符串 283 
15.7.1 substring() 283 
15.7.2 concat() 284 
15.7.3 replace() 284 
15.7.4 trim() 285 
15.8 使用valueOf（）进行数据转换 285 
15.9 改变字符串中字符的大小写 286 
15.10 附加的String方法 286 
15.11 StringBuffer 287 
15.11.1 StringBuffer构造函数 288 
15.11.2 length（）和capacity() 288 
15.11.3 ensureCapacity() 288 
15.11.4 setLength() 289 
15.11.5 charAt（）和setCharAt() 289 
15.11.6 getChars() 289 
15.11.7 append() 290 
15.11.8 insert() 290 
15.11.9 reverse() 291 
15.11.10 delete（）和deleteCharAt() 291 
15.11.11 replace() 292 
15.11.12 substring() 292 
15.11.13 附加的 StringBuffer 方法 292 
15.12 StringBuilder 293 
第16章 java.lang研究 294 
16.1 简单类型包装器 294 
16.1.1 Number 295 
16.1.2 Double和Float 295 
16.1.3 Byte，Short，Integer 和 Long 298 
16.1.4 Character 303 
16.1.5 对Character的补充：
支持Unicode代码点 305 
16.1.6 Boolean 306 
16.2 Void 307 
16.3 Process 307 
16.4 Runtime 308 
16.4.1 内存管理 309 
16.4.2 执行其他程序 309 
16.5 ProcessBuilder 310 
16.6 System 311 
16.6.1 使用currentTimeMillis() 
记录程序执行的时间 312 
16.6.2 使用arraycopy() 313 
16.6.3 环境属性 313 
16.7 Object 314 
16.8 使用clone（）和Cloneable接口 315 
16.9 Class 316 
16.10 ClassLoader 318 
16.11 Math 319 
16.11.1 先验函数 319 
16.11.2 指数函数 320 
16.11.3 取整函数 320 
16.11.4 其他的数学方法 320 
16.12 StrictMath 321 
16.13 Compiler 321 
16.14 Thread，ThreadGroup和Runnable 321 
16.14.1 Runnable接口 322 
16.14.2 Thread 322 
16.14.3 ThreadGroup 324 
16.15 ThreadLocal和 
InheritableThreadLocal 327 
16.16 Package 327 
16.17 RuntimePermission 328 
16.18 Throwable 328 
16.19 SecurityManager 328 
16.20 StackTraceElement 328 
16.21 Enum类 329 
16.22 The CharSequence Interface 330 
16.23 Comparable接口 330 
16.24 Appendable接口 330 
16.25 Iterable接口 331 
16.26 Readable接口 331 
16.27 java.lang子包 331 
16.27.1 java.lang.annotation 331 
16.27.2 java.lang.instrument 332 
16.27.3 java.lang.management 332 
16.27.4 java.lang.ref 332 
16.27.5 java.lang.reflect 332 
第17章 java.util第1部分：集合框架 333 
17.1 集合概述 334 
17.2 J2SE 5 对集合的修改 334 
17.2.1 泛型根本性地改变了集合框架 335 
17.2.2 自动装箱为简单类型的使用 
提供了便利 335 
17.2.3 for each类型的for循环 335 
17.3 Collection接口 335 
17.3.1 Collection接口 336 
17.3.2 List接口 337 
17.3.3 Set接口 338 
17.3.4 SortedSet接口 338 
17.3.5 Queue接口 339 
17.4 Collection（集合）类 340 
17.4.1 ArrayList类 340 
17.4.2 LinkedList类 342 
17.4.3 HashSet类 344 
17.4.4 LinkedHashSet类 345 
17.4.5 TreeSet类 345 
17.4.6 PriorityQueue类 346 
17.4.7 EnumSet类 346 
17.5 使用迭代器访问集合 347 
17.5.1 使用迭代器 348 
17.5.2 替代迭代器的For-Each方案 349 
17.6 在集合中存储用户定义的类 350 
17.7 RandomAccess 接口 351 
17.8 使用映射 351 
17.8.1 映射接口 351 
17.8.2 映射类 353 
17.9 比较函数 357 
17.10 集合算法 360 
17.11 数组 363 
17.12 引进泛型集合的原因 366 
17.13 遗留的类和接口 368 
17.13.1 Enumeration接口 368 
17.13.2 Vector 369 
17.13.3 Stack 372 
17.13.4 Dictionary 373 
17.13.5 Hashtable（哈希表） 373 
17.13.6 Properties 376 
17.13.7 使用store（）和load() 378 
17.14 集合小结 380 
第18章 java.util第2部分：更多的工具类 381 
18.1 StringTokenizer（字符串符号赋予器类） 
381 
18.2 BitSet 382 
18.3 Date 384 
18.4 Calendar 385 
18.5 GregorianCalendar 388 
18.6 TimeZone 389 
18.7 SimpleTimeZone 390 
18.8 Locale 391 
18.9 Random 391 
18.10 Observable 393 
18.10.1 Observer接口 394 
18.10.2 Observer范例 394 
18.11 Timer和TimerTask 396 
18.12 Currency 398 
18.13 Formatter 398 
18.13.1 Formatter的构造函数 399 
18.13.2 Formatter方法 399 
18.13.3 Formatter基础 400 
18.13.4 格式化字符串与字符 401 
18.13.5 格式化数字 402 
18.13.6 格式化时间和日期 402 
18.13.7 %n和%%格式指定符 404 
18.13.8 指定最小域宽 404 
18.13.9 指定精度 405 
18.13.10 使用格式标志 406 
18.13.11 对齐输出 406 
18.13.12 空格、+、0和（标志 407 
18.13.13 逗号标志 407 
18.13.14 #标志 408 
18.13.15 大写选项 408 
18.13.16 使用参数索引 408 
18.13.17 链接Java printf() 409 
18.14 Scanner 409 
18.14.1 Scanner的构造函数 410 
18.14.2 Scanner基础 410 
18.14.3 一些Scanner应用的例子 412 
18.14.4 设置定界符 415 
18.14.5 Scanner的其他特性 416 
18.15 java.util子包 417 
18.15.1 java.util.concurrent、 
java.util.concurrent.atomic和 
java.util.concurrent.locks 417 
18.15.2 java.util.jar 417 
18.15.3 java.util.logging 417 
18.15.4 java.util.prefs 417 
18.15.5 java.util.regex 417 
18.15.6 java.util.zip 417 
第19章 输入/输出：深入探讨java.io 418 
19.1 Java的I/O类和接口 418 
19.2 File 419 
19.2.1 目录 421 
19.2.2 使用FilenameFilter 422 
19.2.3 listFiles（）替代方案 422 
19.2.4 创建目录 423 
19.3 Closeable和Flushable接口 423 
19.4 流类Stream 423 
19.5 字节流 423 
19.5.1 InputStream 424 
19.5.2 OutputStream 424 
19.5.3 FileInputStream 424 
19.5.4 FileOutputStream 426 
19.5.5 ByteArrayInputStream 427 
19.5.6 ByteArrayOutputStream 428 
19.5.7 过滤字节流 429 
19.5.8 缓冲字节流 429 
19.5.9 SequenceInputStream 432 
19.5.10 PrintStream 433 
19.5.11 DataOutputStream和 
DataInputStream 434 
19.5.12 RandomAccessFile 436 
19.6 字符流类 436 
19.6.1 Reader 436 
19.6.2 Writer 437 
19.6.3 FileReader 437 
19.6.4 FileWriter 438 
19.6.5 CharArrayReader 439 
19.6.6 CharArrayWriter 439 
19.6.7 BufferedReader 440 
19.6.8 BufferedWriter 441 
19.6.9 PushbackReader 441 
19.6.10 PrintWriter 442 
19.7 使用流I/O 443 
19.8 序列化 446 
19.8.1 Serializable接口 446 
19.8.2 Externalizable接口 446 
19.8.3 ObjectOutput接口 447 
19.8.4 ObjectOutputStream类 447 
19.8.5 ObjectInput接口 448 
19.8.6 ObjectInputStream 448 
19.8.7 序列化例子 449 
19.9 流的优点 450 
第20章 网络 451 
20.1 网络基础 451 
20.1.1 套接字概览 451 
20.1.2 客户/服务器模式 452 
20.1.3 保留套接字 452 
20.1.4 代理服务器 452 
20.1.5 Internet地址 453 
20.2 Java和网络 453 
20.3 InetAddress类 454 
20.3.1 工厂方法 454 
20.3.2 实例方法 455 
20.4 Inet4Address和Inet6Address 455 
20.5 TCP/IP客户套接字 455 
20.6 URL 457 
20.7 URLConnection类 458 
20.8 TCP/IP服务器套接字 460 
20.9 缓存代理HTTP服务器 460 
20.10 数据报 474 
20.10.1 DatagramPacket 474 
20.10.2 数据报服务器和客户端 474 
20.11 URI类 476 
20.12 J2SE 5新增的类 476 
第21章 Applet类 477 
21.1 Applet基础 477 
21.2 Applet的体系结构 479 
21.3 Applet的框架 479 
21.3.1 Applet的初始化与终止 480 
21.3.2 重写的update() 481 
21.4 简单的applet显示方法 481 
21.5 请求重画 483 
21.6 使用状态窗口 485 
21.7 HTML APPLET标记 486 
21.8 把参数传递给applet 487 
21.9 getDocumentBase（）和getCodeBase() 489 
21.10 AppletContext和showDocument() 490 
21.11 AudioClip接口 491 
21.12 AppletStub接口 491 
21.13 向控制台输出 491 
第22章 事件处理 492 
22.1 两种事件处理机制 492 
22.2 委托事件模型 492 
22.2.1 事件 492 
22.2.2 事件源 493 
22.2.3 事件监听器 493 
22.3 事件类（Event） 493 
22.3.1 ActionEvent 类 494 
22.3.2 AdjustmentEvent 类 495 
22.3.3 ComponentEvent 类 495 
22.3.4 ContainerEvent类 496 
22.3.5 FocusEvent 类 496 
22.3.6 InputEvent类 497 
22.3.7 ItemEvent类 497 
22.3.8 KeyEvent类 498 
22.3.9 MouseEvent 类 499 
22.3.10 MouseWheelEvent类 500 
22.3.11 TextEvent类 500 
22.3.12 WindowEvent类 500 
22.4 事件源 501 
22.5 事件监听器接口 502 
22.5.1 ActionListener接口 502 
22.5.2 AdjustmentListener接口 502 
22.5.3 ComponentListener接口 502 
22.5.4 ContainerListener接口 503 
22.5.5 FocusListener接口 503 
22.5.6 ItemListener接口 503 
22.5.7 KeyListener接口 503 
22.5.8 MouseListener接口 503 
22.5.9 MouseMotionListener接口 504 
22.5.10 MouseWhellListener接口 504 
22.5.11 TextListener接口 504 
22.5.12 WindowFocusListener接口 504 
22.5.13 WindowListener接口 504 
22.6 使用委托事件模型 504 
22.6.1 处理鼠标事件 505 
22.6.2 处理键盘事件 507 
22.7 适配器类 509 
22.8 内部类 511 
第23章 介绍AWT：使用窗口、图形、 
文本 513 
23.1 AWT类 513 
23.2 窗口基本元素 515 
23.2.1 组件 515 
23.2.2 容器 515 
23.2.3 面板 515 
23.2.4 窗口 516 
23.2.5 框架 516 
23.2.6 画布 516 
23.3 使用框架窗口 516 
23.3.1 设定窗口尺寸 516 
23.3.2 隐藏和显示窗口 517 
23.3.3 设置窗口标题 517 
23.3.4 关闭框架窗口 517 
23.4 在applet中创建框架窗口 517 
23.5 创建窗口化程序 522 
23.6 在窗口中显示信息 524 
23.7 处理图形 524 
23.7.1 画直线 524 
23.7.2 画矩形 525 
23.7.3 画椭圆和圆弧 526 
23.7.4 画圆弧 526 
23.7.5 画多边形 527 
23.7.6 缩放图形 528 
23.8 处理颜色 529 
23.8.1 Color方法 529 
23.8.2 设置当前图形颜色 530 
23.8.3 一个演示颜色的applet 530 
23.9 设定画图模式 531 
23.10 处理字体 532 
23.10.1 确定可用字体 533 
23.10.2 创建和选择字体 534 
23.10.3 获取字体信息 535 
23.11 使用FontMetrics管理文本输出 536 
23.11.1 显示多行文本 537 
23.11.2 居中文本 538 
23.11.3 多行文本对齐 539 
第24章 使用AWT控件、布局管理器和 
菜单 543 
24.1 控件基础知识 543 
24.1.1 添加和删除控件 543 
24.1.2 对控件的响应 544 
24.2 标签 544 
24.3 使用按钮 545 
24.4 使用复选框 547 
24.5 复选框组 549 
24.5.1 选项控件 551 
24.5.2 处理选项列表 551 
24.6 使用列表框 553 
24.7 管理滚动条 555 
24.8 使用文本域TextField 557 
24.9 使用TextArea 559 
24.10 了解布局管理器 561 
24.10.1 FlowLayout 562 
24.10.2 BorderLayout 563 
24.10.3 使用Insets 564 
24.10.4 GridLayout 565 
24.10.5 卡片布局CardLayout 566 
24.10.6 GridBagLayout 569 
24.11 菜单栏和菜单 572 
24.12 对话框 577 
24.13 FileDialog 580 
24.14 通过扩展AWT组件处理事件 582 
24.14.1 扩展按钮 583 
24.14.2 扩展复选框 584 
24.14.3 扩展复选框组 584 
24.14.4 扩展选项 585 
24.14.5 扩展列表框 586 
24.14.6 扩展滚动条 586 
24.15 对控件、菜单和布局管理器的研究 587 
第25章 图像 588 
25.1 文件格式 588 
25.2 图像基础：创建、装载和显示 588 
25.2.1 创建图像对象 589 
25.2.2 装载图像 589 
25.2.3 显示图像 589 
25.3 ImageObserver 590 
25.4 双缓冲技术 591 
25.5 MediaTracker 594 
25.6 ImageProducer 596 
25.7 ImageConsumer 597 
25.8 ImageFilter 599 
25.8.1 CropImageFilter 600 
25.8.2 RGBImageFilter 601 
25.9 单元格动画 610 
25.10 其他成像类 612 
第26章 并发实用工具 613 
26.1 并发API包 613 
26.1.1 java.util.concurrent 614 
26.1.2 java.util.concurrent.atomic 614 
26.1.3 java.util.concurrent.locks 614 
26.2 使用同步对象 614 
26.2.1 Semaphore 615 
26.2.2 CountDownLatch 619 
26.2.3 CyclicBarrier 620 
26.2.4 Exchanger 622 
26.3 使用执行程序 624 
26.3.1 执行程序的简单例子 624 
26.3.2 使用Callable和Future 626 
26.4 TimeUnit枚举 628 
26.5 并发集合 629 
26.6 锁 629 
26.7 原子操作 631 
26.8 并发实用工具和 
Java传统方法的对比 632 
第27章 NIO、规则表达式和其他包 633 
27.1 核心Java API包 633 
27.2 新的I/O包 634 
27.2.1 NIO基础知识 635 
27.2.2 Charsets和Selectors 637 
27.2.3 使用新的I/O系统 637 
27.2.4 NIO是未来的I/O解决方案吗 642 
27.3 规则表达式处理 642 
27.3.1 Pattern 642 
27.3.2 Matcher 642 
27.3.3 规则表达式语法 643 
27.3.4 演示模式匹配 644 
27.3.5 双模式匹配选项 648 
27.3.6 研究规则表达式 648 
27.4 反射 648 
27.5 远程方法调用 651 
27.6 文本格式化 654 
27.6.1 DateFormat类 654 
27.6.2 SimpleDateFormat类 655 
第3部分 Java软件开发技术 
第28章 Java Bean 659 
28.1 什么是Java Bean 659 
28.2 Java Bean的优点 659 
28.3 反省 660 
28.3.1 设计属性模式 660 
28.3.2 设计事件模式 661 
28.3.3 方法和设计模式 661 
28.3.4 使用BeanInfo接口 661 
28.4 绑定和约束属性 662 
28.5 持久性 662 
28.6 自定义器 662 
28.7 Java Bean API 662 
28.7.1 Introspector 664 
28.7.2 PropertyDescriptor 664 
28.7.3 EventSetDescriptor 664 
28.7.4 MethodDescriptor 664 
28.8 开发一个简单的Bean 664 
第29章 Swing导读 668 
29.1 JApplet 669 
29.2 JFrame和JComponent 669 
29.3 图标和标签 669 
29.4 处理线程问题 671 
29.5 文本域 672 
29.6 按钮 673 
29.6.1 JButton类 674 
29.6.2 复选框 675 
29.6.3 单选按钮 677 
29.7 组合框 678 
29.8 选项卡窗格 680 
29.9 滚动窗格 682 
29.10 树 683 
29.11 深入研究Swing 686 
第30章 Servlet 687 
30.1 背景知识 687 
30.2 Servlet的生命周期 688 
30.3 使用Tomcat开发Servlet 688 
30.4 简单的Servlet 689 
30.4.1 创建和编译Servlet源代码 689 
30.4.2 启动Tomcat 690 
30.4.3 启动Web浏览器并请求Servlet 690 
30.5 Servlet API 690 
30.6 javax.servlet包 691 
30.6.1 Servlet接口 691 
30.6.2 ServletConfig接口 692 
30.6.3 ServletContext接口 692 
30.6.4 ServletRepuest接口 692 
30.6.5 ServletResponse接口 693 
30.6.6 GenericServlet类 693 
30.6.7 ServletInputStream类 693 
30.6.8 ServletOutputStream类 694 
30.6.9 Servlet 异常类 694 
30.7 读取Servlet参数 694 
30.8 javax.Servlet.http包 695 
30.8.1 HttpServletRequest接口 695 
30.8.2 HttpServletResponse接口 696 
30.8.3 HttpSession接口 697 
30.8.4 HttpSessionBindingListener接口 697 
30.8.5 Cookie类 697 
30.8.6 HttpServlet类 698 
30.8.7 HttpSessionEvent类 699 
30.8.8 HttpSessionBindingEvent类 699 
30.9 处理HTTP请求和响应 700 
30.9.1 处理HTTP GET请求 700 
30.9.2 处理HTTP POST请求 701 
30.10 使用Cookie 702 
30.11 会话追踪 703 
第4部分 Java应用 
第31章 金融应用中的applet和servlet 707 
31.1 计算贷款的偿还额 707 
31.1.1 RegPay域 710 
31.1.2 init（）方法 710 
31.1.3 actionPerformed（）方法 712 
31.1.4 paint（）方法 712 
31.1.5 compute（）方法 713 
31.2 计算投资的长期回报 713 
31.3 计算达到长期回报所需的初始投资 716 
31.4 计算达到期望养老金所需的初始投资 
719 
31.5 计算给定投资的养老金最大值 722 
31.6 计算贷款余额 724 
31.7 创建用于金融计算的Servlet 727 
31.7.1 将RegPay applet转换为servlet 727 
31.7.2 RegPay servlet 728 
31.8 一些尝试 730 
第32章 使用Java创建下载管理器 731 
32.1 理解Internet下载 731 
32.2 下载管理器概述 732 
32.3 Download类 732 
32.3.1 Download变量 735 
32.3.2 Download的构造函数 735 
32.3.3 download（）方法 735 
32.3.4 run（）方法 736 
32.3.5 stateChanged（）方法 738 
32.3.6 操作和存取方法 739 
32.4 ProgressRenderer类 739 
32.5 DownloadsTableModel类 740 
32.5.1 addDownload（）方法 741 
32.5.2 clearDownload（）方法 741 
32.5.3 getColumnClass（）方法 742 
32.5.4 getValueAt（）方法 742 
32.5.5 update（）方法 742 
32.6 DownloadManager类 743 
32.6.1 DownloadManager变量 747 
32.6.2 DownloadManager构造函数 747 
32.6.3 verifyUrl（）方法 747 
32.6.4 tableSelectionChanged（）方法 748 
32.6.5 updateButtons（）方法 748 
32.6.6 操作事件的处理 749 
32.7 编译并运行下载管理器 749 
32.8 改进下载管理器 750 
附录A Java的文档注释 751