第1章 Java概述 1
1.1 初步认识 1
1.2 变量 2
1.3 程序中的注释 3
1.4 有名常量 4
1.4.1 Unicode字符 4
1.5 控制流 5
1.6 类和对象 7
1.6.1 创建对象 7
1.6.2 静态域或类域 8
1.6.3 垃圾收集器 8
1.7 方法和参数 9
1.7.1 调用方法 9
1.7.2 this引用 10
1.7.3 静态方法或类方法 10
1.8 数组 11
1.9 字符串对象 12
1.10 继承一个类 13
1.10.1 Object类 15
1.10.2 调用超类中的方法 15
1.11 接口 15
1.12 异常 17
1.13 包 18
1.14 Java下部构造 20
1.15 其他主题简述 20
第2章 类和对象 21
2.1 一个简单的类 21
2.2 域 22
2.3 访问控制和继承 22
2.4 创建对象 23
2.5 构造函数 24
2.6 方法 26
2.6.1 参数值 28
2.6.2 利用方法控制访问 29
2.7 this 30
2.8 重载方法 31
2.9 静态成员 32
2.9.1 静态初始化块 33
2.9.2 静态方法 33
2.10 垃圾收集和finalize 34
2.10.1 finalize 34
2.10.2 finalize时恢复对象 36
2.11 main 36
2.12 toString方法 37
2.13 native方法 38
第3章 继承类 39
3.1 一个继承类 39
3.2 protected的确切含义 42
3.3 继承类中的构造函数 42
3.3.1 构造函数的顺序依赖 43
3.4 重构方法和陷藏域 45
3.4.1 关键字super 47
3.5 把方法和类标记为final 47
3.6 Object类 49
3.7 抽象类和方法 50
3.8 衍生对象 51
3.9 如何以及何时继承类 54
4.0 设计待继承的类 55
第4章 接口 61
4.1 接口实例 61
4.2 单重继承对多重继承 62
4.3 继承接口 63
4.3.1 名字冲突 64
4.4 实现接口 65
4.5 使用一种实现 66
4.6 何时使用接口 67
第5章 语言符号、操作符和表达式 69
5.1 字符集 69
5.2 注释 69
5.3 语言符号 70
5.4 标识符 71
5.4.1 Java保留字 71
5.5 基本类型 72
5.6 文字量 72
5.6.1 对象引用 72
5.6.2 布尔型 72
5.6.3 整型 72
5.6.4 浮点型 73
5.6.5 字符型 73
5.6.6 字符串型 73
5.7 变量声明 74
5.7.1 名字的意义 74
5.8 数组变量 75
5.8.1 数组的数组 76
5.9 初始值 77
5.9.1 数组初始化 78
5.10 运算符优先级和结合规则 78
5.11 求值的顺序 80
5.12 表达式类型 80
5.13 类型转换 80
5.13.1 隐式转换 80
5.13.2 显式转换和instanceof 81
5.13.3 字符患转换 83
5.14 成员访问 83
5.15 算术运算符 85
5.15.1 整数运算 85
5.15.2 浮点运算 86
5.15.3 Java浮点运算和IEEE-754 86
5.15.4 字符串连接 87
5.16 递增和递减运算符 87
5.17 关系和条件运算符 88
5.18 按位运算符 89
5.19 条件运算符?: 90
5.20 赋值运算符 91
5.21 包名 92
第6章 控制流 93
6.1 语句和块 93
6.2 if-else 93
6.3 switch 95
6.4 while和do-while 97
6.5 for 97
6.6 标签 99
6.7 break 99
6.8 continue 100
6.9 return 101
6.10 java没有goto语句 101
第7章 异常 102
7.1 创建异常类型 102
7.2 throw 103
7.3 throws子句 103
7.4 try,catch和finally 104
7.4.1 finally 105
7.5 什么时候使用异常 107
第8章 字符串 109
8.1 基本字符串操作 109
8.2 字符串比较 110
8.3 工具函数 113
8.4 创建相关的字符串 113
8.5 字符串转换 115
8.6 字符串和char数组 115
8.7 字符串和byte数组 117
8.8 String Buffer 类 117
8.8.1 修改缓冲区 118
8.8.2 取出数据 119
8.8.3 容量管理 120
第9章 线程 122
9.1 创建线程 123
9.2 同步 125
9.2.1 同步方法 125
9.2.2 同步语句 126
9.3 wait和notify 127
9.4 wait和notify的细节 129
9.5 线程调度 130
9.6 死锁 132
9.7 挂起线程 133
9.8 中断线程 133
9.9 结束线程的执行 134
9.10 结束应用程序的执行 136
9.11 使用Runnable 136
9.12 volatile 138
9.13 线程安全性和ThreadGroup 138
9.14 调试线程 141
第10章 包 143
10.1 包的命名 143
10.2 包的访问 144
10.3 包的内容 144
第11章 I/O包 146
11.1 流 146
11.2 InputStream 146
11.3 OutputStream 148
11.4 标准的流类型 150
11.5 过滤流 151
11.6 PrintStream 153
11.7 缓冲流 153
11.8 字节数组流 154
11.9 StringBufferInputStream 155
11.10 文件流和FileDescriptor 155
11.11 管道流 156
11.12 SequenceInputStream 157
11.13 LineNumberInputStream 158
11.14 PushbackInputStream 158
11.15 StreamTokenizer 159
11.16 数据流 163
11.16.1 数据流类 165
11.17 RandomAccessFile 165
11.18 File类 166
11.19 FilenameFilter 168
11.20 IOException类 169
第12章 标准工具 170
12.1 BitSet 170
12.2 Enumeration 172
12.3 实现一个Enumeration接口 172
12.4 Vector 173
12.5 Stack 177
12.6 Dictionary 178
12.7 Hashtable 179
12.8 Properties 181
12.9 Observer/Observable 182
12.10 Date 185
12.11 Random 188
12.12 StringTokenizer 189
第13章 利用类型进行程序设计 191
13.1 Class 191
13.2 载入类 194
13.3 包装器类概述 197
13.4 Boolean 198
13.5 Character 198
13.6 Number 200
13.7 Integer 201
13.8 Long 201
13.9 Float和Double 202
第14章 系统程序设计 204
14.1 标准I/O流 204
14.2 内存管理 204
14.3 系统属性 205
14.4 创建进程 207
14.5 Runtime 210
14.6 其他 211
14.7 安全性 212
14.8 Math 212
附录A 本机方法 214
A.1 概述 214
A.2 C和C++映射 215
A.2.1 名字 217
A.2.2 方法 217
A.2.3 类型 217
A.2.4 错误 218
A.2.5 语言安全特性 218
A.2.6 内存模式 219
A.3 一个实例 219
A.3.1 Lockable File的内部函数 220
A.4 字符串 222
A.5 数组 225
A.6 创建对象 228
A.7 调用Java方法 229
A.8 最后警告 231
附录B Java运行期异常 232
B.1 RuntimeException类 233
B.2 Error类 233
附录C 有用的表格 236
参考书目 240