第 1 章 了解 Java................................. 1
1.1 什么是 Java.............................. 2
1.2 Java 的特性 .............................. 4
1.2.1 语言特性 ................................... 4
1.2.2 应用平台 ................................... 7
1.2.3 活跃的论坛与丰富
的资源 ....................................... 9
1.3 如何学习 Java......................... 10
1.4 接下来的主题 ......................... 11
1.5 网络资源 ................................ 11
第 2 章 入门准备 ................................ 13
2.1 下载、安装和了解 JDK.......... 14
2.1.1 下载 JDK................................ 14
2.1.2 安装 JDK................................ 16
2.1.3 了解 JDK................................ 17
2.2 设置 Path 与 Classpath............. 19
2.2.1 设置 Path................................. 19
2.2.2 设置 Classpath......................... 22
2.3 第一个 Java 程序 .................... 23
2.3.1 编写和编译 Java 程序 ............ 23
2.3.2 执行 Java 程序 ........................ 25
2.4 选择开发工具 ......................... 26
2.5 接下来的主题 ......................... 28
2.6 网络资源 ................................ 29
第 3 章 语法入门 ................................ 31
3.1 第一个 Java 程序 .................... 32
3.1.1 解释第一个 Java 程序 ............ 32
3.1.2 给 C 用户的第一个
Java 程序 ................................ 34
3.1.3 为程序加入注释 ..................... 36
3.2 在命令行模式下与程序互动 .... 37
3.2.1 使用 Scanner 取得输入 .......... 37
3.2.2 使用 BufferedReader
取得输入 ................................. 39
3.2.3 标准输入 / 输出串 .................... 41
3.2.4 输出格式控制 ......................... 42
3.3 数据和运算 ............................ 45
3.3.1 数据类型 ................................. 45
3.3.2 变量和常量 ............................. 47
3.3.3 算术运算 ................................. 50
3.3.4 比较和条件运算 ..................... 52
3.3.5 逻辑和位运算 ......................... 54
3.3.6 递增和递减运算 ..................... 59
3.4 流程控制 ................................ 62
3.4.1 if 条件式 .................................. 62
3.4.2 switch 条件式 .......................... 66
3.4.3 for 循环 ................................... 68
3.4.4 while 循环 ............................... 70
3.4.5 break 和 continue..................... 73
3.5 接下来的主题 ......................... 75
3.6 网络资源 ................................ 75
第 4 章 从 autoboxing 和 unboxing
认识对象 ................................ 77
4.1 关于对象 ................................ 78
4.1.1 使用对象 ................................. 78
4.1.2 打包 (Wrap) 基本数据类型 ...... 81
4.2 自动装箱和拆箱 ..................... 83
4.2.1 autoboxing 和 unboxing.......... 83
4.2.2 小心使用 boxing..................... 85
4.3 接下来的主题 ......................... 87
4.4 网络资源 ................................ 87
第 5 章 数组 ....................................... 89
5.1 一维数组和二维数组 .............. 90
5.1.1 一维数组对象 ......................... 90
5.1.2 二维数组对象 ......................... 94
5.2 高级数组概念 ......................... 98
5.2.1 高级的数组操作 ..................... 98
5.2.2 Arrays 类 ............................... 101
5.2.3 foreach 与数组 ...................... 1 06
5.2.4 数组对象 ............................... 1 07
5.3 接下来的主题 ....................... 108
5.4 网络资源 .............................. 108
第 6 章 字符串 ................................. 111
6.1 认识字符串 .......................... 112
6.1.1 String 类 ................................ 112
6.1.2 不可变 (Immutable) 字符串 ... 116
6.1.3 StringBuilder 类 .................... 120
6.2 字符串高级运用 ................... 122
6.2.1 命令行变量 ........................... 122
6.2.2 分离字符串 ........................... 124
6.2.3 使用正则表示式
(Regular Expression)............. 125
6.2.4 Pattern 和 Matcher................. 129
6.3 接下来的主题 ....................... 131
6.4 网络资源 .............................. 131
第 7 章 封装 ..................................... 133
7.1 定义类 ................................. 134
7.1.1 以对象思考问题 ................... 134
7.1.2 使用 class 定义类 ................. 136
7.1.3 类成员 (Class Member)......... 140
7.1.4 构造函数 (Constructor)......... 143
7.1.5 关于 this................................ 145
7.1.6 关于 static.............................. 147
7.2 关于方法 .............................. 150
7.2.1 重载 (Overload) 方法 ............. 151
7.2.2 不定长度参数 ....................... 153
7.2.3 递归方法 ............................... 154
7.2.4 垃圾收集 ............................... 156
7.3 接下来的主题 ....................... 158
7.4 网络资源 .............................. 159
第 8 章 继承和多态 .......................... 161
8.1 继承 ..................................... 162
8.1.1 扩展 (Extends) 父类 ............... 162
8.1.2 受保护的 (Protected) 成员 ..... 165
8.1.3 重写 (Override) 方法 .............. 167
8.1.4 Object 类 ............................... 170
8.1.5 toString() 、 equals() 和
hashCode() 方法 .................... 173
8.1.6 clone() 方法 ............................ 175
8.1.7 final 关键词 ........................... 178
8.2 多态 ..................................... 178
8.2.1 多态导论 ............................... 179
8.2.2 抽象类 (Abstract Class)......... 180
8.2.3 抽象类应用 ........................... 183
8.2.4 接口 (Interface)...................... 186
8.3 接下来的主题 ....................... 189
8.4 网络资源 .............................. 190
第 9 章 管理类文件 .......................... 191
9.1 内嵌类 ................................. 192
9.1.1 成员内嵌类和区域内嵌类 ... 192
9.1.2 匿名内嵌类 ........................... 194
9.2 package 与 import.................. 196
9.2.1 设定包 (Package)................... 196
9.2.2 import 的意义 ....................... 199
9.2.3 public 与包 ............................ 201
9.2.4 import 静态成员 ................... 204
9.3 接下来的主题 ....................... 207
9.4 网络资源 .............................. 207
第 10 章 异常处理 ............................ 209
10.1 异常处理入门 ..................... 210
10.2 可控式异常 (Checked
Exception) 和执行时异常 (Runtime Exception) 212
10.3 throw 和 throws................... 213
10.4 异常的继承架构 .................. 217
10.5 断言 (Assertion)................... 220
10.6 接下来的主题 ..................... 222
10.7 网络资源 ............................ 223
第 11 章 枚举类型 ............................ 225
11.1 常数设置与枚举类型 ........... 226
11.1.1 常数设置 .......................... 226
11.1.2 枚举类型入门 .................. 227
11.2 定义枚举类型 ..................... 230
11.2.1 深入枚举类型 .................. 231
11.2.2 枚举上的方法 .................. 233
11.2.3 因值而异的类实现 (Value- Specific Class Bodies) 235
11.3 接下来的主题 ..................... 237
11.4 网络资源 ............................ 238
第 12 章 泛型 ................................... 239
12.1 泛型入门 ............................ 240
12.1.1 没有泛型之前 .................. 240
12.1.2 定义泛型类 ...................... 242
12.1.3 几个定义泛型的例子 ...... 244
12.2 泛型高级语法 ..................... 246
12.2.1 限制泛型可用类型 .......... 247
12.2.2 类型通配字符 (Wildcard). 249
12.2.3 扩充泛型类和实现
泛型接口 .......................... 251
12.3 接下来的主题 ..................... 253
12.4 网络资源 ............................ 253
第 13 章 对象容器 ............................ 255
13.1 Collection 类 ....................... 256
13.1.1 简介 List 接口 .................. 256
13.1.2 ArrayList........................... 258
13.1.3 LinkedList......................... 261
13.1.4 HashSet............................. 266
13.1.5 TreeSet.............................. 268
13.1.6 EnumSet............................ 271
13.2 Map 类 ................................ 273
13.2.1 HashMap........................... 273
13.2.2 TreeMap............................ 276
13.3 接下来的主题 ..................... 279
13.4 网络资源 ............................ 279
第 14 章 输入 / 输出 ........................... 281
14.1 文件 ................................... 2 8 2
14.1.1 File 类 ............................... 282
14.1.2 RandomAccessFile 类 ....... 284
14.2 位流 ................................... 288
14.2.1 InputStream 和
OutputStream.................... 288
14.2.2 FileInputStream 和
FileOutputStream.............. 290
14.2.3 BufferedInputStream 和
BufferedOutputStream...... 293
14.2.4 DataInputStream 和
DataOutputStream............. 295
14.2.5 ObjectInputStream 和
ObjectOutputStream.......... 298
14.2.6 SequenceInputStream........ 304
14.2.7 PrintStream........................ 307
14.2.8 ByteArrayInputStream 和
ByteArrayOutputStream... 309
14.2.9 PushbackInputStream........ 311
14.3 字符流 ................................ 313
14.3.1 Reader 和 Writer............... 314
14.3.2 InputStreamReader 和 OutputStreamWriter 315
14.3.3 FileReader 和 FileWriter... 317
14.3.4 BufferedReader 和 BufferedWriter 318
14.3.5 PrintWriter......................... 320
14.3.6 CharArrayReader 和 CharArrayWriter 322
14.3.7 PushbackReader................ 324
14.4 接下来的主题 ..................... 326
14.5 网络资源 ............................ 327
第 15 章 线程 (Thread) ..................... 329
15.1 线程入门 ............................ 330
15.1.1 继承 Thread...................... 330
15.1.2 实现 Runnable 界面 ........ 332
15.1.3 Daemon 线程 ................... 335
15.1.4 线程生命周期 .................. 336
15.1.5 线程的加入 (Join)............. 339
15.1.6 线程的停止 ...................... 341
15.1.7 ThreadGroup..................... 343
15.1.8 UncaughtExceptionHandler 345
15.2 同步 (Synchronized)............. 346
15.2.1 同步化 .............................. 347
15.2.2 wait() 和 notify()................ 352
15.2.3 容器类的线程安全 (Thread-safe) 358
15.2.4 ThreadLocal 类 .................. 359
15.3 concurrent 套件新增类 ......... 363
15.3.1 BlockingQueue................ 363
15.3.2 Callable 与 Future........... 366
15.3.3 Executors......................... 369
15.4 接下来的主题 ..................... 371
15.5 网络资源 ............................ 372
第 16 章 反射 ................................... 375
16.1 类加载与查看 ..................... 376
16.1.1 简介 Class 与类加载 ........ 376
16.1.2 使用 Class.forName()
加载类 .............................. 379
16.1.3 从 Class 中获取信息 ........ 382
16.1.4 简介类加载器 .................. 385
16.1.5 使用自己的 ClassLoader.. 390
16.2 使用反射生成与操作对象 .... 394
16.2.1 生成对象 .......................... 394
16.2.2 调用方法 .......................... 397
16.2.3 修改成员值 ...................... 402
16.2.4 再看数组对象 .................. 404
16.2.5 Proxy 类 ............................ 407
16.3 接下来的主题 ..................... 410
16.4 网络资源 ............................ 410
第 17 章 Annotation......................... 411
17.1 Annotation 概述 ................... 412
17.1.1 限定 Override 父类方法 @Override 412
17.1.2 标示方法为 Deprecated @Deprecated 413
17.1.3 抑制编译器警告 @SuppressWarnings 415
17.1.4 自定义 Annotation 类型 ... 416
17.2 meta-annotation................... 419
17.2.1 告知编译器如何处理 annotation @Retention 419
17.2.2 限定 annotation 使用
对象 @Target..................... 422
17.2.3 要求为 API 文件的
一部分 @Documented....... 423
17.2.4 子类是否继承父类的 annotation @Inherited 425
17.3 接下来的主题 ..................... 426
17.4 网络资源 ............................ 426
第 18 章 拾遗补缺 ............................ 427
18.1 日期和时间 ......................... 428
18.1.1 使用 Date......................... 428
18.1.2 使用 Calendar.................. 432
18.2 日志 (Logging)..................... 436
18.2.1 简介 Logging.................... 436
18.2.2 Logging 的等级 ............... 438
18.2.3 Handler 和 Formatter........ 441
18.2.4 自定义 Formatter............. 443
18.2.5 Logger 层次关系 .............. 445
18.3 信息绑定 ............................ 446
18.3.1 使用 ResourceBundle....... 446
18.3.2 格式化信息 ...................... 448
18.3.3 国际化信息 ...................... 450
18.4 接下来的主题 ..................... 452
第 19 章 专题制作—— 文字编辑器 .... 453
19.1 产品生命周期 ..................... 454
19.1.1 分析 (Analysis).................. 454
19.1.2 设计 (Design).................... 457
19.1.3 开发 (Development)........... 457
19.1.4 测试 (Testing).................... 457
19.1.5 完成 (Implementation)....... 457
19.1.6 维护 (Maintenance)............ 458
19.1.7 结束生命周期
(End-of-Life , EOL)......... 458
19.2 Swing 入门 ......................... 458
19.2.1 Swing 简介 ....................... 458
19.2.2 设计主窗口与菜单栏 ...... 460
19.2.3 版面管理 .......................... 465
19.3 事件处理 ............................ 469
19.3.1 Java 事件模型 .................. 470
19.3.2 文字编辑器的事件处理 .. 470
19.4 文字编辑与保存 .................. 477
19.4.1 打开文件的流程处理 ...... 477
19.4.2 保存文件的流程处理 ...... 480
19.4.3 关闭文件的流程处理 ...... 481
19.4.4 文字区的编辑、剪切、
复制和粘贴 ...................... 482
19.5 Executable Jar 的制作 .......... 483
19.6 接下来的主题 ..................... 486
19.7 网络资源 ............................ 486
第 20 章 JDBC 入门 ......................... 489
20.1 使用 JDBC 连接数据库 ........ 490
20.1.1 简介 JDBC....................... 490
20.1.2 连接数据库 ...................... 492
20.1.3 简单的 Connection
工具类 .............................. 494
20.1.4 简单的连接池
(Connection pool).............. 498
20.2 使用 JDBC 进行数据操作 .... 501
20.2.1 Statement 、 ResultSet........ 501
20.2.2 PreparedStatement ........... 504
20.2.3 LOB 读写 ......................... 507
20.2.4 事务 (Transaction)............. 510
20.2.5 批处理 .............................. 512
20.2.6 ResultSet 光标控制 .......... 513
20.2.7 ResultSet 新增、更新、
删除数据 .......................... 515
20.2.8 ResultSetMetaData............ 517
20.3 接下来的主题 ..................... 518
20.4 网络资源 ............................ 519
第 21 章 Java SE 6 新功能简介 ........ 521
21.1 Java SE 6 基本新功能 .......... 522
21.1.1 java.lang 包 ..................... 522
21.1.2 java.util 包 ....................... 522
21.1.3 java.io 包 ......................... 526
21.1.4 java.awt 包 ...................... 528
21.1.5 Classpath 简化设置 ........ 531
21.2 Apache Derby 、 JDBC 4.0.... 532
21.2.1 使用 Apache Derby.......... 532
21.2.2 加载驱动程序 .................. 535
21.2.3 改进的异常处理 .............. 536
21.2.4 BLOB 、 CLOB 的改进 .... 537
21.3 接下来的主题 ..................... 537
附录 A Ant 简介 ............................... 539
A.1 Ant 设置 .............................. 540
A.2 第一个 Ant 构建 ................... 541
A.3 任务 (Target)......................... 544
A.4 属性 (Property)..................... 546
A.5 路径 (Path)........................... 547
A.6 常用任务 (Task).................... 548
A.7 一个简单的 buildfile............. 551
附录 B JUnit 简介 ............................. 553
B.1 单元测试 (Unit Test).............. 554
B.2 JUnit 设置 ............................ 556
B.3 第一个 JUnit 测试 ................. 556
B.4 自动构建与测试 ................... 559
B.5 自动生成测试报告 ............... 560
附录 C MySQL 简介 ....................... 565
C.1 MySQL 安装与设置 .............. 566
C.2 MySQL 的数据类型 .............. 567
C.3 建立数据库、数据表 ............ 570
C.4 CRUD 操作 .......................... 571