第1章 Java前奏 1
1.1 什么是Java 2
Java语言发展简史 2
1.2 认识Java语言 3
1.2.1 Java语言的特性 3
1.2.2 Java Applet 5
1.2.3 丰富的类库 5
1.2.4 Java的竞争对手 5
1.2.5 Java在应用领域的优势 7
1.3 Java平台的体系结构 8
1.3.1 Java SE标准版 8
1.3.2 Java EE企业版 10
1.3.3 Java ME微型版 11
1.3.4 三个版本间的关系 11
1.4 Java SE环境安装和配置 12
1.4.1 什么是JDK 12
1.4.2 JDK的安装目录和实用命令工具介绍 12
1.4.3 设置环境变量 14
1.4.4 验证配置的正确性 14
1.5 本章练习 15
第2章 Java程序简介 17
2.1 什么是程序 18
2.2 计算机中的程序 18
2.3 Java程序 19
2.3.1 Java程序中的类型 19
2.3.2 Java应用程序开发三部曲 21
2.3.3 开发第一个Java程序 21
2.3.4 Java代码中的注释 23
2.3.5 源码文本字符集设置 24
2.3.6 常见错误解析 25
2.4 Java类库组织结构和文档 29
2.5 Java虚拟机简介 32
2.6 Java的垃圾回收器 34
2.7 上机练习 35
第3章 Java语言基础入门 37
3.1 变量 38
3.1.1 什么是变量 38
3.1.2 为什么需要变量 38
3.1.3 变量的声明和赋值 39
3.1.4 变量命名规范 39
3.1.5 经验之谈——变量常见错误的分析与处理 40
3.2 数据的分类 41
3.2.1 Java中的8种基本数据类型 42
3.2.2 数据进制 43
3.2.3 进制间的转换 44
3.2.4 基本数据类型间的转换 45
3.2.5 引用数据类型 46
3.3 标识符、关键字和常量 46
3.3.1 Java的标识符 46
3.3.2 关键字 47
3.3.3 常量 48
3.4 运算符 48
3.4.1 算术运算符 49
3.4.2 赋值运算符 51
3.4.3 关系运算符 52
3.4.4 逻辑运算符 53
3.4.5 位运算符 54
3.4.6 移位运算符 55
3.4.7 其他运算符 57
3.5 表达式 58
3.5.1 表达式简介 58
3.5.2 表达式的类型和值 58
3.5.3 表达式的运算顺序 59
3.5.4 优先级和结合性问题 59
3.6 顺序结构和选择结构 60
3.6.1 顺序语句 60
3.6.2 选择条件语句 61
3.6.3 switch结构 67
3.6.4 经验之谈——switch结构常见错误的分析与处理 70
3.6.5 switch与多重if结构比较 72
3.7 循环语句 72
3.7.1 while循环 73
3.7.2 经验之谈——while循环的常见错误 75
3.7.3 do-while循环 76
3.7.4 for循环 77
3.7.5 经验之谈——for循环的常见错误 81
3.7.6 循环语句小结 82
3.8 跳转语句 83
3.8.1 break语句 83
3.8.2 continue语句 85
3.8.3 return语句 88
3.9 MyEclipse工具介绍 89
3.9.1 MyEclipse的安装 89
3.9.2 MyEclipse工程管理 90
3.9.3 Java Debug调试技术 90
3.9.4 MyEclipse常用快捷键的说明 91
3.9.5 修改注释模板 92
3.10 本章练习 93
第4章 数组和排序算法 95
4.1 一维数组 96
4.1.1 为什么要使用数组 96
4.1.2 什么是数组 97
4.1.3 如何使用数组 98
4.1.4 经验之谈——数组常见错误 103
4.2 数组应用 104
4.2.1 求平均值、最大值和最小值 105
4.2.2 递归调用 107
4.2.3 数组排序 109
4.2.4 数组复制 111
4.2.5 代码优化 113
4.3 多维数组 115
4.3.1 多重循环 115
4.3.2 二维数组 117
4.4 排序算法 119
4.4.1 冒泡排序 119
4.4.2 插入排序 121
4.4.3 快速排序 123
4.4.4 选择排序 125
4.5 增强for循环 127
4.6 本章练习 128
第5章 抽象和封装 131
5.1 面向过程的设计思想 132
5.2 面向对象的设计思想 132
5.3 抽象 133
5.3.1 了解对象 133
5.3.2 Java抽象思想的实现 134
5.4 封装 135
5.4.1 对象封装的概念 136
5.4.2 理解类 137
5.4.3 Java类模板创建 137
5.4.4 Java中对缘的创建和使用 139
5.5 属性 142
5.5.1 属性的定义 142
5.5.2 变量 143
5.6 方法 145
5.6.1 方法的定义 145
5.6.2 方法的分类 148
5.6.3 构造方法 150
5.6.4 方法重载 152
5.6.5 方法的调用 154
5.6.6 方法参数及其传递问题 157
5.6.7 理解main()方法语法及命令行参数 160
5.7 this关键字 161
5 8 JavaBean 163
5.9 包 164
5.9.1 为什么需要包 164
5.9.2 如何创建包 165
5.9.3 编译并生成包 166
5.9.4 使用带包的类 167
5.9.5 JDK中常用包介绍 167
5.10 本章练习 168
第6章 继承和多态 171
6.1 继承 172
6.1.1 Java继承思想的实现 173
6.1.2 继承的优点 175
6.1.3 super关键字 175
6.2 Object类 177
6.3 多态 179
6.3.1 多态概念的理解 179
6.3.2 Java中多态的实现 180
6.3.3 类型转换、向上转型和向下转型 184
6.3.4 动态绑定 186
6.4 访问修饰符 188
6.5 static修饰符 189
6.5.1 静态变量 189
6.5.2 静态方法 190
6.5.3 静态代码块 190
6.5.4 静态导入 192
6.5.5 单态设计模式 192
6.6 final修饰符 193
6.7 abstract修饰符 195
6.8 接口 197
6.8.1 接口的定义及实现 197
6.8.2 接口中的常量 198
6.8.3 多重接口 199
6.9 本章练习 199
第7章 面向对象的分析与设计 205
7.1 面向对象的分析与设计简介 206
7.1.1 类的设计建议 206
7.1.2 类名、变量名、方法名的选取 207
7.1.3 类的属性设计建议 208
7.1.4 类的方法设计建议 208
7.1.5 继承的设计建议 209
7.2 对象模型建立 209
7.2.1 UML简介 209
7.2.2 用例图 211
7.2.3 类图 211
7.2.4 序列图 213
7.2.5 状态图 214
7.2.6 活动图 215
7.2.7 组件图 215
7.2.8 部署图 216
7.3 类之间的关系 217
7.4 软件的可维护与复用设计原则 220
7.5 本章练习 225
第8章 内部类与包装器 227
8.1 内部类和内部接口 228
8.1.1 成员内部类 229
8.1.2 静态内部类 233
8.1.3 局部内部类 234
8.1.4 匿名内部类 237
8.2 对象包装器 240
8.3 装箱和拆箱 243
8.4 本章练习 245
第9章 常用类介绍 247
9.1 String类 248
9.1.1 字符串常量 250
9.1.2 字符串对象的操作 253
9.1.3 字符串对象的修改 256
9.1.4 类型转换 259
9.2 StringBuffer和StringBuilder类 260
9.3 Runtime类的使用 263
9.4 日期类简介 265
9.5 Java程序国际化的实现 269
9.6 Random类和Math类 274
9.7 枚举 276
9.8 本章练习 280
第10章 Java异常处理 283
10.1 异常概述 284
10.2 认识异常 287
10.3 使用try和catch捕获异常 288
10.4 使用throw和throws引发异常 292
10.5 finally关键字 295
10.6 getMessage和printStackTrace方法 299
10.7 异常分类 300
10.8 自定义异常类 301
10.9 本章练习 303
第11章 Java集合框架和泛型机制 305
11.1 Java集合框架概述 306
11.2 Collection接口 306
11.3 Set接口实现类 308
11.3.1 实现类HashSet 309
11.3.2 实现类LinkedHashSet 312
11.3.3 实现类TreeSet 313
11.4 List接口实现类 319
11.4.1 实现类ArrayList 319
11.4.2 实现类LinkedList 321
11.4.3 实现类Vector 323
11.4.4 实现类Stack 325
11.5 Map接口 326
11.5.1 实现类HashMap 327
11.5.2 实现类LinkedHashMap 328
11.5.3 实现类TreeMap 329
11.5.4 实现类Properties 330
11.6 Collections类 332
11.7 泛型概述 335
11.8 本章练习 345
第12章 多线程 347
12.1 理解线程 348
12.1.1 什么是多线程 348
12.1.2 进程和线程的区别 349
12.1.3 线程的创建和启动 349
12.1.4 Thread类介绍 352
12.1.5 为什么需要多线程 353
12.1.6 线程分类 353
12.2 线程的生命周期 355
12.2.1 线程的状态及转换 355
12.2.2 线程睡眠 356
12.2.3 线程让步 358
12.2.4 线程的加入 359
12.3 线程的调度和优先级 359
12.4 线程的同步 360
12.4.1 线程同步的方法 363
12.4.2 对象锁 364
12.4.3 wait和notify方法 365
12.4.4 死锁 369
12.5 集合类的同步问题 371
12.5.1 使用synchronized同步块 371
12.5.2 使用集合工具类同步化集合类对象 371
12.5.3 使用JDK 5.0后提供的并发集合类 372
12.6 用Timer类调度任务 372
12.7 本章练习 373
第13章 Java I/O 375
13.1 java.io.File类 376
13.1.1 文件和目录 376
13.1.2 Java对文件和目录的操作 376
13.2 Java I/O原理 382
13.3 流类的结构 382
13.3.1 InputStream和OutputStream 383
13.3.2 Reader和Writer 384
13.4 文件流 385
13.4.1 FileInputStream和FileOutputStream 386
13.4.2 FileReader和FileWriter 388
13.5 缓冲流 390
13.6 转换流 391
13.7 数据流 393
13.8 打印流 395
13.9 对象流 396
13.9.1 序列化和反序列化操作 396
13.9.2 序列化的版本 399
13.10 随机存取文件流 400
13.11 ZIP文件流 404
13.12 本章练习 408
第14章 图形用户界面设计 409
14.1 抽象窗口工具集(AWT) 410
14.1.1 AWT组件和容器 410
14.1.2 布局管理器 416
14.2 事件处理机制 422
14.2.1 事件监听器 423
14.2.2 事件适配器 427
14.3 AWT常用组件 429
14.3.1 界面组件 429
14.3.2 菜单组件 435
14.3.3 其他组件 439
14.4 Swing简介 441
14.4.1 Swing体系 441
14.4.2 Swing组件的应用 442
14.5 可视化开发Swing组件 456
14.6 声音的播放和处理 459
14.7 2D图形的绘制 463
14.8 本章练习 465
第15章 反射 467
15.1 反射概述 468
15.1.1 Java中的反射机制 468
15.1.2 Java反射API 468
15.1.3 Class类 469
15.2 使用Java反射机制 470
15.2.1 获取类型信息 470
15.2.2 创建对象 473
15.2.3 调用方法 475
15.2.4 访问成员变量的值 477
15.2.5 操作数组 478
15.3 反射与动态代理 480
15.3.1 静态代理 480
15.3.2 动态代理 482
15.4 本章练习 483
第16章 Java标注 485
16.1 标注概述 486
16.2 JDK内置的基本标注类型 486
16.2.1 重写Override 486
16.2.2 警告Deprecated 488
16.2.3 抑制警告SuppressWarnings 489
16.3 自定义标注类型 490
16.4 对标注进行标注 491
16.4.1 目标Target 491
16.4.2 类型Retention 492
16.4.3 文档Documented 493
16.4.4 继承Inherited 493
16.5 利用反射获取标注信息 494
16.6 本章练习 496
第17章 项目实战1——单机版五子棋游戏 497
17.1 功能描述 498
17.2 总体设计 498
17.3 代码实现 498
17.4 程序的运行与发布 511
17.5 手动生成可执行JAR文件 514
17.6 本章练习 516
第18章 Java数据库编程 517
18.1 JDBC简介 518
18.2 JDBC类和接口 518
18.2.1 DriverManager类 520
18.2.2 Connection接口 522
18.2.3 Statement接口 522
18.2.4 PreparedStatement接口 522
18.2.5 ResultSet接口 523
18.3 JDBC操作SQL 525
18.4 JDBC基本示例 529
18.5 JDBC应用示例 535
18.6 本章练习 547
第19章 Java网络编程 549
19.1 网络编程的基本概念 550
19.1.1 网络基础知识 550
19.1.2 网络基本概念 551
19.1.3 网络传输协议 552
19.2 Java网络类和接口 553
19.3 InetAddress类 554
19.4 URL和URLConnection类 555
19.4.1 URL类 555
19.4.2 URLConnection类 558
19.5 Socket套接字 562
19.6 Datagram套接字 568
19.7 综合示例 572
19.8 本章练习 580
第20章 项目实战2——网络五子棋与网络版JQ的开发 581
20.1 网络五子棋 582
20.1.1 功能分析 582
20.1.2 网络五子棋界面设计 584
20.1.3 网络五子棋运行效果 596
20.2 网络版JQ 597
20.2.1 需求描述 597
20.2.2 功能分析 598
20.2.3 主要功能实现 598
20.3 制作JAR包的补充说明 627
20.4 本章练习 627