第1章 开发运行环境 1
1.1 Java的运行环境与虚拟机 1
1.2 Java的开发环境 3
1.3 一个简单的Java应用程序(Application) 11
第2章 语言基础 14
2.1 Java语言的特点 14
2.2 Java程序的构成 15
2.3 数据类型 17
2.4 运算符与表达式 30
2.5 流程控制语句 50
2.6 控制台输入和输出 76
2.7 程序文本的风格 81
2.8 基础语法练习 84
第3章 对象和类 91
3.1 面向对象的基本概念 91
3.2 类与对象 96
3.3 成员变量的定义与使用 101
3.4 方法的定义和实现 108
3.5 方法的调用 114
3.6 构造方法 121
3.7 静态方法 126
3.8 main()方法和命令行参数 131
第4章 继承 134
4.1 继承的基本原理 134
4.2 子类对父类的继承 135
4.3 属性的隐藏和方法的覆盖 137
4.4 构造方法没有继承机制 143
4.5 super的使用 145
4.6 继承的内部处理 148
4.7 接口与多重继承 148
4.8 父类变量引用子类对象 154
第5章 多态 155
5.1 重载 155
5.2 运行时多态 162
第6章 特殊类与包 170
6.1 抽象类与抽象方法 170
6.2 最终类与最终方法 173
6.3 内部类 174
6.4 包 184
第7章 数组与字符串 191
7.1 数组 191
7.2 字符串 204
第8章 异常处理 210
8.1 异常的基本概念和作用 210
8.2 Java的异常处理机制 211
8.3 异常类的层次结构 212
8.4 捕获和处理异常 215
8.5 抛出异常 219
8.6 try-catch-finally语句的嵌套 222
8.7 用户自定义异常 224
8.8 使用异常来实现键盘输入 225
第9章 输入和输出 226
9.1 文件和输入输出流 226
9.2 InputStream和OutputStream及其子类 227
9.3 Reader和Writer及其子类 238
9.4 文件属性处理 242
9.5 随机访问文件 245
9.6 序列化 248
第10章 多线程 251
10.1 线程的概念 251
10.2 Thread类 253
10.3 多线程程序的编写 255
10.4 线程的通信与协调 262
第11章 常用工具类 275
11.1 Runtime类的使用 275
11.2 System类的使用 279
11.3 Math类的使用 283
11.4 Random类的使用 286
11.5 Date类和Calendar类的使用 288
11.6 Formatter类的使用 297
11.7 类型包装器 301
第12章 运行时类型识别 307
12.1 RTTI的作用 307
12.2 用Class类来加载对象 308
12.3 使用getClass()方法获取类信息 310
12.4 使用类标记 311
12.5 使用关键字instanceof判断所属类 311
12.6 利用反射获取运行时类信息 312
第13章 泛型 322
13.1 泛型的本质 322
13.2 一个关于泛型的简单例子 323
13.3 带两个类型参数的泛型类 325
13.4 有界类型 326
13.5 通配符参数 328
13.6 泛型方法 330
13.7 泛型接口 332
13.8 泛型类的继承 334
13.9 擦拭 339
13.10 擦拭带来的错误 341
13.11 泛型的局限 343
第14章 集合 345
14.1 集合接口与抽象类 345
14.2 集合类的使用 349
14.3 常用算法 369
14.4 遗留的类和接口 374
第15章 GUI程序设计 380
15.1 GUI程序设计的基本概念 380
15.2 AWT组件简介 382
15.3 事件处理 387
15.4 Swing组件的特性 396
15.5 顶层容器 397
15.6 中间容器 402
15.7 常用组件 412
15.8 布局管理 434
第16章 网络程序设计 440
16.1 与网络相关的常用术语 440
16.2 InetAddress类使用示例 442
16.3 URL类和URLConnection类的使用 444
16.4 Socket的使用 448
16.5 UDP数据报通信 460