第1章 初识Java 1
1.1 Java简介 1
1.2 Java的跨平台原理 1
1.3 Java开发环境的搭建 3
1.3.1 JDK1.8的安装 3
1.3.2 配置环境变量 4
1.3.3 开发环境测试 5
1.4 编写和运行Java程序 5
1.4.1 第一个Java程序“HelloWorld” 5
1.4.2 第一个Java程序的提升 6
1.5 注释 9
1.6 使用Eclipse开发Java程序 11
1.6.1 Eclipse的安装 11
1.6.2 使用Eclipse开发Java程序 11
1.6.3 Java项目的组织结构 15
本章小结 16
练习题 16
上机实操 16
第2章 变量与常量 20
2.1 内存 20
2.2 变量 20
2.2.1 数据类型 21
2.2.2 变量的声明 22
2.2.3 变量的使用 22
2.2.4 变量的命名规则 23
2.3 初识基本数据类型的内存结构图 24
2.4 数据类型的转换 25
2.4.1 自动类型转换 25
2.4.2 强制类型转换 26
2.5 常量 26
本章小结 27
练习题 27
上机实操 27
第3章 运算符 30
3.1 Java中的运算符 30
3.1.1 赋值运算符 30
3.1.2 算术运算符 31
3.1.3 关系运算符 33
3.1.4 逻辑运算符 34
3.2 键盘录入 36
本章小结 37
练习题 37
上机实操 38
第4章 分支结构 42
4.1 单分支结构 42
4.2 双分支结构 44
4.3 多分支结构 46
4.3.1 多重if 46
4.3.2 switch结构 48
本章小结 49
练习题 50
上机实操 51
第5章 循环结构 56
5.1 循环的分类 56
5.1.1 while循环 56
5.1.2 do-while循环 59
5.1.3 for循环 60
5.2 循环的中断语句 61
5.2.1 break语句 61
5.2.2 continue语句 62
5.3 多重循环 64
5.4 Java代码调试 66
本章小结 68
练习题 68
上机实操 70
第6章 方法 79
6.1 方法的概述 79
6.1.1 方法的定义 79
6.1.2 方法的使用 80
6.1.3 方法小结 80
6.1.4 方法的参数传递 81
6.1.5 方法练习 81
6.2 方法的重载 83
6.3 递归 84
本章小结 85
练习题 86
上机实操 87
第7章 数组 93
7.1 数组的概述 93
7.2 数组的使用 93
7.2.1 数组的创建和赋值 93
7.2.2 数组小结 95
7.3 数组的常用操作 96
7.3.1 数组的遍历 96
7.3.2 数组的赋值 97
7.3.3 元素的查找 99
7.3.4 最值问题 100
7.3.5 排序算法 101
7.4 Arrays类的常用方法 102
7.5 二维数组 104
本章小结 106
练习题 107
上机实操 108
第8章 类和对象 114
8.1 面向过程和面向对象 114
8.2 类和对象的概述 114
8.2.1 类的编写 115
8.2.2 对象的创建和使用 115
8.2.3 类和对象的进阶 116
8.3 成员变量和局部变量 118
8.4 构造方法 120
8.5 包 122
8.5.1 声明包 122
8.5.2 导入包 123
8.5.3 静态导入 123
本章小结 124
练习题 125
上机实操 126
第9章 封装 130
9.1 封装的概述 130
9.1.1 为什么需要封装 130
9.1.2 如何实现封装 131
9.2 this关键字 132
9.2.1 this关键字的含义 132
9.2.2 this关键字的作用 132
9.3 static关键字 134
9.3.1 为什么需要static 134
9.3.2 static的作用 137
9.3.3 使用static的常见问题 137
9.4 代码块 138
本章小结 139
练习题 140
上机实操 141
第10章 继承 153
10.1 Java中的继承机制 153
10.1.1 为什么需要继承 153
10.1.2 如何实现继承 153
10.1.3 继承的特性 154
10.2 super关键字 155
10.3 子类对象的实例化过程 156
10.4 访问修饰符 158
10.5 方法重写 159
10.5.1 为什么需要方法重写 159
10.5.2 方法重写的特点 159
10.6 Object类 160
10.7 final关键字 163
10.8 abstract关键字 164
10.8.1 abstract关键字的作用 164
10.8.2 重写与实现的关系 165
10.9 接口 165
10.9.1 接口的概述 165
10.9.2 接口的特点 165
本章小结 167
练习题 168
上机实操 171
第11章 多态 181
11.1 多态的概述 181
11.1.1 生活中的多态 181
11.1.2 Java中如何实现多态 182
11.1.3 多态的两种表现形式 185
11.2 类型转换 187
11.2.1 向上类型转换 187
11.2.2 向下类型转换 187
11.2.3 类型验证关键字instanceof 188
11.3 内部类 188
11.3.1 内部类的概述 188
11.3.2 内部类的分类 189
本章小结 192
练习题 193
上机实操 194
第12章 异常 208
12.1 为什么需要处理异常 208
12.2 异常处理机制 210
12.2.1 捕获异常 210
12.2.2 常见的异常类型 212
12.2.3 多重catch 213
12.2.4 异常类型的分类 213
12.2.5 throws关键字 214
12.2.6 throw关键字 215
12.3 自定义异常类 216
本章小结 217
练习题 218
上机实操 219
第13章 常用类 222
13.1 包装类 222
13.1.1 为什么需要包装类 222
13.1.2 包装类的继承关系图 223
13.1.3 以Integer类为例学习包装类 223
13.2 字符串相关类 228
13.2.1 String类 228
13.2.2 StringBuffer类与StringBuilder类 235
13.2.3 StringBuffer的扩容原理 238
13.3 日期时间类 239
13.3.1 Date类 239
13.3.2 java.util.Date的相关子类 242
13.3.3 Calendar类 242
13.4 Math类 245
13.5 枚举 246
本章小结 248
练习题 248
上机实操 250
第14章 容器 271
14.1 为什么需要集合 271
14.2 集合框架体系 271
14.3 Collection接口 272
14.4 List接口 275
14.4.1 List接口的常用方法 275
14.4.2 List接口的实现类 277
14.5 泛型 279
14.6 迭代器 282
14.7 Set接口 284
14.7.1 Set接口的实现类HashSet 285
14.7.2 Set接口的实现类TreeSet 291
14.8 Map接口 296
14.8.1 Map接口的实现类HashMap 297
14.8.2 Map接口的实现类TreeMap 301
14.9 集合的工具类Collections 304
14.10 数组与集合的相互转换 305
本章小结 307
练习题 308
上机实操 309
第15章 File与I/O 315
15.1 File类 315
15.1.1 File操作文件 315
15.1.2 操作目录 319
15.2 IO流 320
15.2.1 IO流的概述 320
15.2.2 IO流的分类 321
15.3 字节流 321
15.3.1 字节输入流InputStream 321
15.3.2 字节输出流OutputStream 324
15.4 字节缓冲流 325
15.5 字符流 327
15.5.1 字符输入流Reader 327
15.5.2 字符输出流Writer 328
15.5.3 OuputStream与Writer的区别 329
15.6 转换流 330
15.6.1 转换输出流OutputStreamWriter 330
15.6.2 转换输入流InputStreamReader 332
15.7 字符缓冲流 332
15.7.1 字符缓冲输出流BufferedWriter 332
15.7.2 缓冲输入流BufferedReader 333
15.8 System类对IO的支持 334
15.8.1 System.in 334
15.8.2 System.out 335
15.9 Scanner类对IO的支持 336
15.10 打印流 337
15.11 数据流 338
15.12 对象流 339
15.12.1 对象输出流ObjectOutputStream 340
15.12.2 对象输入流ObjectInputStream 342
15.13 字节数组流 345
本章小结 346
练习题 346
上机实操 348
第16章 多线程 356
16.1 线程的基础知识 356
16.1.1 程序、进程与线程 356
16.1.2 进程与线程之间的关系 357
16.2 在Java中实现多线程的方式 358
16.2.1 继承Thread类 358
16.2.2 实现Runnable接口 360
16.2.3 继承Thread类与实现Runnable接口的区别 362
16.2.4 实现Callable接口 364
16.3 线程的生命周期 366
16.4 线程的常用方法 367
16.5 线程的同步与死锁 374
16.5.1 多线程操作的问题 374
16.5.2 线程的同步 376
16.5.3 死锁 379
16.6 线程间的通信 379
本章小结 387
练习题 388
上机实操 390
第17章 网络编程 395
17.1 网络编程的三要素 395
17.1.1 IP地址 395
17.1.2 端口号 396
17.1.3 通信协议 396
17.2 网络模型 396
17.2.1 OSI参考模型 396
17.2.2 TCP/IP参考模型 397
17.3 InetAddress类 397
17.4 TCP编程 398
17.5 UDP编程 408
本章小结 414
练习题 415
上机实操 415
参考文献 424