第1章 Java概述 1
1.1 程序设计语言的发展 1
1.2 Java语言概述 2
1.2.1 Java语言的产生及发展 2
1.2.2 Java语言的特性 3
1.2.3 Java虚拟机及Java的跨平台原理 4
1.2.4 Java的平台版本 6
1.3 JDK的安装与使用 7
1.3.1 JDK的下载与安装 7
1.3.2 Path与classpath环境变量 10
1.3.3 第一个Java程序 12
1.3.4 Java的反编译 17
1.4 集成开发工具介绍 18
思考与练习 28
第2章 面向对象的基本思想 29
2.1 结构化程序设计方法的缺点 29
2.2 面向对象的基本概念 30
2.2.1 对象的基本概念 31
2.2.2 面向对象中的抽象 32
2.3 面向对象核心思想 34
2.3.1 封装与透明 34
2.3.2 消息与服务 36
2.3.3 继承 37
2.3.4 接口 38
2.3.5 多态 39
2.4 类之间的关系 40
2.4.1 UML简介 40
2.4.2 依赖 41
2.4.3 关联 41
2.4.4 聚合与组合 42
2.4.5 泛化 43
2.4.6 实现 43
思考与练习 44
第3章 类与对象 46
3.1 类的基本概念 46
3.1.1 类的定义 46
3.1.2 类与对象的辨析 46
3.2 类与对象 47
3.2.1 类的声明 47
3.2.2 成员变量 49
3.2.3 成员方法 52
3.2.4 构造器(Constructor) 55
3.2.5 创建对象 58
3.2.6 访问对象的成员 59
3.2.7 main方法 60
3.2.8 关键字 60
3.2.9 标识符 61
3.2.10 static关键字 61
3.2.11 this关键字 63
3.2.12 package与import 65
3.2.13 访问控制修饰符 69
3.2.14 完整的范例程序 70
3.3 Java虚拟机运行数据区 72
思考与练习 74
第4章 Java语言基础 75
4.1 Java的数据类型 75
4.1.1 基本数据类型 75
4.1.2 布尔型 76
4.1.3 整数类型 76
4.1.4 字符型 80
4.1.5 浮点数类型 81
4.1.6 基本数据类型之间的转换 82
4.1.7 引用类型 85
4.2 运算符 86
4.2.1 算术运算符 86
4.2.2 关系运算符 88
4.2.3 位运算符 89
4.2.4 逻辑运算符 93
4.2.5 赋值运算符 94
4.2.6 其他运算符 96
4.2.7 运算符的优先级 99
4.3 表达式与语句 99
4.3.1 分支语句 100
4.3.2 循环语句 104
4.3.3 break和continue 107
思考与练习 108
第5章 继承 110
5.1 继承的基本概念 110
5.2 Java继承的语法 110
5.2.1 子类与超类 110
5.2.2 子类能继承的属性及方法 111
5.2.3 构造方法的继承(super关键字) 111
5.2.4 方法的重载 113
5.2.5 方法的覆盖 114
5.2.6 方法覆盖与重载的区别 116
5.2.7 Java的上下转型 116
5.2.8 继承的利弊与使用原则 118
5.3 终止继承 118
5.4 抽象类 119
5.5 多态 120
5.6 Object类 125
思考与练习 126
第6章 接口 128
6.1 接口的概念与特性 128
6.2 接口的定义与使用 128
6.2.1 接口定义的语法 128
6.2.2 接口实现的语法 129
6.3 比较接口与抽象类 131
6.4 基于接口的设计模式 135
6.4.1 定制服务模式 135
6.4.2 适配器模式 136
6.4.3 默认适配器模式 138
6.4.4 代理模式 139
思考与练习 142
第7章 内部类 145
7.1 内部类 145
7.1.1 内部类概述 145
7.1.2 成员内部类 145
7.1.3 局部内部类 146
7.1.4 匿名内部类 146
7.1.5 静态内部类 147
7.2 内部类的使用 147
思考与练习 149
第8章 异常处理 150
8.1 异常处理机制基础 150
8.1.1 什么是异常 150
8.1.2 Java异常处理机制的优点 150
8.2 异常的处理 153
8.2.1 try...catch捕获异常 153
8.2.2 finally子语句 154
8.2.3 throws和throw子语句 155
8.2.4 异常处理语句的语法规则 155
8.3 Java的异常类 158
8.3.1 异常的分类 158
8.3.2 运行时异常与受检查异常的区别 158
8.3.3 异常与错误的区别 159
8.4 自定义异常类 159
8.5 异常处理原则 160
思考与练习 161
第9章 Java中的I/O系统 162
9.1 认识输入流与输出流 162
9.2 输入流 165
9.2.1 字节数组输入流 166
9.2.2 文件输入流 167
9.2.3 文件字符输入流 169
9.2.4 Java管道流 170
9.3 过滤器输入流 172
9.3.1 DataInputStream的使用 174
9.3.2 BufferedInputStream的使用 175
9.4 输出流 176
9.4.1 字节数组输出流 176
9.4.2 文件输出流 177
9.5 过滤器输出流 178
9.5.1 FilterOutputStream 178
9.5.2 DataOutputStream 178
9.5.3 BufferedOutputStream 178
9.5.4 PrintStream 179
9.6 Reader与Writer 180
9.6.1 InputStreamReader和OutputStream-Writer 180
9.6.2 BufferedReader和BufferedWriter 181
9.7 标准I/O 182
9.8 File处理 183
9.8.1 创建文件与目录 184
9.8.2 随机文件访问 186
9.9 对象的序列化与反序列化 187
思考与练习 190
第10章 Java多线程 192
10.1 线程的基本概念 192
10.1.1 进程与线程 192
10.1.2 线程的运行机制 193
10.2 线程的创建与启动 194
10.2.1 继承Thread类 194
10.2.2 实现Runnable接口 195
10.3 线程中常见的方法 196
10.3.1 start()方法 197
10.3.2 sleep()方法 197
10.3.3 yield()方法 198
10.3.4 join()方法 198
10.4 线程的状态转换 201
10.5 线程同步 202
10.5.1 临界资源问题 202
10.5.2 互斥锁 202
10.5.3 多线程的同步 202
10.5.4 同步与并发 206
10.5.5 对象锁与线程通信 206
10.5.6 死锁 209
10.6 Daemon线程 212
思考与练习 214
第11章 数组和集合类 215
11.1 Java数组 215
11.1.1 数组的声明、创建与初始化 215
11.1.2 多维数组 217
11.1.3 数组实用类Arrays 218
11.2 Java集合 219
11.2.1 Java中的集合概述 219
11.2.2 Collection接口 220
11.2.3 Iterator接口 221
11.3 Set集合 222
11.3.1 Set集合概述 222
11.3.2 HashSet 223
11.3.3 TreeSet 223
11.4 List列表 225
11.4.1 List列表概述 225
11.4.2 List的实现类 226
11.4.3 List的ListIterator接口 226
11.5 Map映射 228
11.5.1 Map映射概述 228
11.5.2 Map的实现类 229
思考与练习 232
第12章 Java网络编程 233
12.1 网络编程基础 233
12.1.1 网络的基本概念 233
12.1.2 IP地址与端口 233
12.1.3 TCP/IP的传输层协议 234
12.2 URL应用 235
12.2.1 统一资源定位器 235
12.2.3 URL应用示例 236
12.3 TCP编程 238
12.3.1 Socket的基本概念 238
12.3.2 Socket简单编程应用 239
12.3.3 支持多客户的Client/Server应用 242
12.4 UDP编程 246
12.4.1 DatagramSocket类 246
12.4.2 基于UDP的简单的Client/Server程序设计 247
思考与练习 251
第13章 Java的常用类 252
13.1 String类和StringBuffer类 252
13.1.1 String类 252
13.1.2 StringBuffer类 254
13.2 基本数据类型封装类 256
13.3 Properties类 260
13.4 Date与Calendar类 261
13.4.1 Date类 262
13.4.2 Calendar类 263
13.5 Math与Random类 266
思考与练习 267