第1章 Java前奏 1
1.1Java语言发展简史 2
1.2认识Java语言 3
1.2.1Java语言特性 3
1.2.2Java Applet 4
1.2.3丰富的类库 4
1.2.4Java的竞争对手 5
1.2.5Java在应用领域的优势 7
1.3Java平台的体系结构 8
1.3.1Java SE标准版 8
1.3.2Java EE企业版 10
1.3.3Java ME微型版 11
1.4Java SE环境安装和配置 11
1.4.1什么是JDK 11
1.4.2JDK的安装目录和实用命令工具介绍 12
1.4.3设置环境变量 13
1.4.4验证配置的正确性 13
1.5MyEclipse 7.1工具开发环境的安装和配置 14
1.6本章练习 16
第2章 Java程序简介 17
2.1什么是程序 18
2.2计算机中的程序 18
2.3Java程序 19
2.3.1Java程序中的类型 19
2.3.2Java应用程序开发三步曲 21
2.3.3开发Java第一个程序 21
2.3.4Java代码中的注释 23
2.3.5常见错误解析 24
2.4Java类库组织结构和文档 27
2.5Java虚拟机简介 28
2.6Java技术的两个核心 29
2.7本章练习 30
第3章 Java语言基础入门 31
3.1变量 32
3.1.1什么是变量 32
3.1.2为什么需要变量 32
3.1.3变量的声明和赋值 33
3.1.4变量应用实例 33
3.2数据的分类 34
3.2.1Java中的8种基本数据类型 34
3.2.2普及二进制 36
3.2.3进制间的转换 37
3.2.4基本数据类型间的转换 38
3.2.5数据类型的应用实例 39
3.2.6引用数据类型 39
3.3关键字、标识符和常量 39
3.3.1变量命名规范 39
3.3.2经验之谈——变量常见错误的分析与处理 40
3.3.3Java标识符命名规则 41
3.3.4关键字 42
3.3.5常量 42
3.4运算符 43
3.4.1算术运算符 43
3.4.2赋值运算符 45
3.4.3关系运算符 47
3.4.4逻辑运算符 49
3.4.5位运算符 49
3.4.6移位运算符 50
3.4.7其他运算符 51
3.5表达式 52
3.5.1表达式简介 52
3.5.2表达式的类型和值 52
3.5.3表达式的运算顺序 52
3.5.4优先级和结合性问题 52
3.6顺序结构和选择结构 54
3.6.1顺序语句 54
3.6.2选择条件语句 54
3.6.3switch结构 59
3.6.4经验之谈——switch结构常见错误的分析与处理 63
3.6.5switch和多重if结构比较 65
3.7循环语句 65
3.7.1while循环 66
3.7.2经验之谈——while循环的常见错误 69
3.7.3do...while循环 70
3.7.4for循环 72
3.7.5经验之谈——for循环的常见错误 74
3.7.6循环语句小结 75
3.7.7break语句 76
3.7.8continue语句 79
3.8Java Debug调试技术 81
3.9本章练习 82
第4章 数组和常用算法 85
4.1一维数组 86
4.1.1为什么要使用数组 86
4.1.2什么是数组 87
4.1.3如何使用数组 88
4.1.4经验之谈——数组常见错误 92
4.2常用算法 94
4.2.1求平均值、最大值和最小值 94
4.2.2数组排序 98
4.2.3数组复制 99
4.3多维数组 101
4.3.1二重循环 101
4.3.2控制流程进阶 103
4.3.3二维数组 106
4.4经典算法 108
4.4.1冒泡排序 108
4.4.2插入排序 111
4.5增强for循环 112
4.6本章练习 112
第5章 抽象和封装 115
5.1面向过程的设计思想 116
5.2面向对象的设计思想 116
5.3抽象 117
5.3.1了解对象 117
5.3.2Java抽象思想的实现 118
5.4封装 120
5.4.1对象封装的概念 120
5.4.2理解类 121
5.4.3Java类模板创建 121
5.4.4Java中对象的创建和使用 124
5.5属性 126
5.5.1属性的定义 126
5.5.2变量 127
5.6方法 128
5.6.1方法的定义 128
5.6.2构造方法 131
5.6.3方法重载 134
5.6.4自定义方法 134
5.6.5系统提供的方法 135
5.6.6方法的调用 136
5.6.7方法参数及其传递问题 140
5.6.8理解main()方法语法及命令行参数 143
5.6.9递归调用 143
5.7this关键字 144
5.8JavaBean 145
5.9包 146
5.9.1为什么需要包 146
5.9.2如何创建包 147
5.9.3编译并生成包 147
5.9.4使用带包的类 148
5.9.5JDK中常用包介绍 148
5.10本章练习 149
第6章 继承和多态 151
6.1继承 152
6.1.1Java的继承思想实现 153
6.1.2super关键字 154
6.2Object类 156
6.3多态 157
6.3.1多态概念的理解 157
6.3.2Java中多态的实现 158
6.3.3类型转换、向上转型和向下转型 160
6.3.4动态绑定 162
6.4访问修饰符 163
6.5static修饰符 164
6.5.1静态变量 164
6.5.2静态方法 165
6.5.3静态代码块 165
6.5.4单态设计模式 166
6.6final修饰符 167
6.7abstract修饰符 168
6.8接口 169
6.8.1接口的定义及实现 170
6.8.2接口中的常量 170
6.8.3接口的多重实现 170
6.9本章练习 171
第7章 面向对象的分析与设计 175
7.1面向对象的分析与设计简介 176
7.1.1类的设计建议 176
7.1.2类名、变量名、方法名的选取 177
7.1.3类的属性设计建议 178
7.1.4类的方法设计建议 178
7.1.5继承的设计建议 179
7.2对象模型建立 179
7.2.1UML简介 179
7.2.2用例图 181
7.2.3类图 181
7.2.4序列图 183
7.2.5状态图 184
7.2.6活动图 185
7.2.7组件图 186
7.2.8部署图 186
7.3类之间的关系 187
7.4软件的可维护与复用设计原则 190
7.5本章练习 195
第8章 内部类与包装器 197
8.1内部类和内部接口 198
8.1.1非静态成员内部类 199
8.1.2局部内部类 202
8.1.3静态内部类 205
8.1.4匿名内部类 207
8.2对象包装器 209
8.3装箱和拆箱 212
8.4本章练习 214
第9章 常用类介绍 215
9.1String类 216
9.1.1字符串常量 217
9.1.2字符串对象操作 220
9.1.3字符串对象修改 224
9.1.4类型转换 226
9.2StringBuffer类的使用 227
9.3StringBuilder类的使用 229
9.4日期类简介 230
9.5Java语言国际化时间的获取与计算 234
9.6Random类和Math类 237
9.7本章练习 239
第10章 Java异常处理 241
10.1异常概述 242
10.2使用try和catch捕获异常 246
10.3使用throw和throws引发异常 248
10.4finally关键字 251
10.5getMessage和printStackTrace方法 254
10.6多重catch 255
10.7自定义异常类 257
10.8本章练习 258
第11章 Java集合框架和泛型机制 259
11.1Java集合框架概述 260
11.2Collection接口 260
11.3Set接口实现类 262
11.3.1实现类HashSet 263
11.3.2实现类LinkedHashSet 266
11.3.3实现类TreeSet 267
11.4List接口实现类 272
11.4.1实现类ArrayList 273
11.4.2实现类LinkedList 275
11.4.3实现类Vector 277
11.5Map接口 278
11.5.1实现类HashMap 280
11.5.2实现类LinkedHashMap 281
11.5.3实现类TreeMap 281
11.5.4实现类Properties 282
11.6Collections类 284
11.7泛型概述 287
11.8本章练习 296
第12章 多线程 297
12.1理解线程 298
12.1.1什么是多线程 298
12.1.2进程和线程的区别 298
12.1.3线程的创建和启动 299
12.1.4Thread类介绍 302
12.1.5为什么需要多线程 303
12.1.6线程分类 303
12.2线程的生命周期 303
12.2.1线程的状态及转换 304
12.2.2线程睡眠 305
12.2.3线程让步 307
12.2.4线程的加入 307
12.3线程的调度和优先级 308
12.4线程的同步 309
12.4.1线程同步的方法 311
12.4.2对象锁 313
12.4.3wait和notify方法 314
12.4.4死锁 316
12.5集合类的同步问题 317
12.5.1使用synchronized同步块 318
12.5.2使用集合工具类同步化集合类对象 318
12.5.3使用JDK 5.0后提供的并发集合类 318
12.6用Timer类调度任务 319
12.7本章练习 320
第13章 Java IO 321
13.1java.io.File类 322
13.1.1文件和目录 322
13.1.2Java对文件和目录的操作 322
13.2Java IO原理 326
13.3流类结构 327
13.3.1InputStream和OutputStream 327
13.3.2Reader和Writer 328
13.4文件流 330
13.4.1FileInputStream和FileOutputStream 330
13.4.2FileReader和FileWriter 333
13.5缓冲流 334
13.6转换流 335
13.7数据流 337
13.8打印流 338
13.9对象流 339
13.9.1序列化和反序列化操作 339
13.9.2序列化的版本 342
13.10随机存取文件流 343
13.11ZIP文件流 345
13.12本章练习 347
第14章 图形用户界面设计 349
14.1抽象窗口工具集(AWT) 350
14.1.1AWT组件和容器 350
14.1.2布局管理器 355
14.2事件处理机制 361
14.2.1事件监听器 362
14.2.2事件适配器 366
14.3AWT常用组件 368
14.3.1界面组件 368
14.3.2菜单组件 374
14.3.3其他组件 378
14.4Swing简介 379
14.4.1Swing体系图 379
14.4.2Swing组件应用 380
14.5声音的播放和处理 393
14.62D图形的绘制 396
14.7MyEclipse图形化插件SWT Designer简介 398
14.7.1SWT Designer的下载和安装 399
14.7.2SWT Designer开发实例 400
14.8JBuilder工具软件简介 402
14.9本章练习 405
第15章 反射 407
15.1反射概述 408
15.1.1Java中的反射机制 408
15.1.2Java反射API 408
15.1.3Class类 409
15.2使用Java反射机制 410
15.2.1获取类型信息 410
15.2.2创建对象 413
15.2.3调用方法 415
15.2.4访问成员变量的值 417
15.2.5操作数组 418
15.3反射与动态代理 420
15.3.1静态代理 420
15.3.2动态代理 422
15.4本章练习 423
第16章 Java注解 425
16.1注解概述 426
16.2JDK内置的基本注解类型 426
16.2.1重写Override 426
16.2.2警告Deprecated 427
16.2.3抑制警告Suppress Warnings 429
16.3自定义注解类型 429
16.4对注解进行注解 431
16.4.1目标Target 431
16.4.2类型Retention 432
16.4.3文档Documented 433
16.4.4继承Inherited 433
16.5利用反射获取注解信息 434
16.6上机练习 436
第17章 项目实战1——单机版五子棋游戏 437
17.1功能描述 438
17.2总体设计 438
17.3代码实现 438
17.4程序的运行与发布 453
17.5本章练习 456
第18章 Java数据库编程 457
18.1JDBC简介 458
18.2JDBC类和接口 458
18.2.1DriverManager类 460
18.2.2Connection接口 462
18.2.3Statement接口 462
18.2.4PreparedStatement接口 462
18.2.5ResultSet接口 463
18.3JDBC操作SQL 465
18.4JDBC基本示例 469
18.5JDBC应用示例 475
18.6本章练习 487
第19章 Java网络编程 489
19.1网络编程的基本概念 490
19.1.1网络基础知识 490
19.1.2网络基本概念 491
19.1.3网络传输协议 492
19.2Java网络类和接口 493
19.3InetAddress类 494
19.4URL和URLConnection类 495
19.4.1URL 495
19.4.2URLConnection类 497
19.5Scoket套接字 501
19.6Datagram套接字 505
19.7综合示例 508
19.8本章练习 515
第20章 项目实战2——网络五子棋与网络版JQ的开发 517
20.1网络五子棋 518
20.1.1功能分析 518
20.1.2网络五子棋界面设计 519
20.1.3网络五子棋运行效果 529
20.2网络版JQ 530
20.2.1需求描述 530
20.2.2功能分析 530
20.2.3主要功能实现 530
20.3本章练习 560