标题：Java基础与案例开发详解
内容简介
序言
Java SE（Java Platform，Standard Edition，Java标准版）是Sun Microsystems公司平台体系结构中最基础也是最底层的版本，它是各种应用平台的基础。Java SE不仅包含了开发和部署各种桌面应用程序的API，还包含了支持Java EE企业级的应用开发以及Java ME嵌入式开发的相关类。随着Sun投入IBM的怀抱，Java SE的功能将会进一步加强。
Java SE版本的各种特性的学习对初学者尤为重要。它不仅是初学者通向成功的基石，而且对它掌握的程度直接决定读者后期作为Java软件工程师的等级。
本书选用了大量的生活案例将Java语言特性通过实战代码一一呈现，使读者不用刻意去记忆其中的理论就可以轻松掌握。本书中案例代码注释详细，很多部分都通过截图的形式展现出来，让读者一目了然。本书中具有代表性的操作通过步骤的形式一步一步地进行引导和讲解，让读者不仅能知其所以然而且还能编出应用程序，具有较高的实用价值，讲解过程中还对一些初学者极易犯的错误提供了相应的解决方案和应注意的事项或提示。这些错误都是编者在开发和教学过程中的实践经验的总结，目的是让读者在最短的时间内，掌握最核心最实用的技术。另外书中每章节的示例源代码都放在所附光盘中，可帮助读者更加轻松地学习每一章节。
本书共分为20章，各章节简介如下。
第1、2和3章介绍Java环境的安装配置，Java程序的开发过程和Java语言的基础语法。
第4章介绍数组和常用算法的相关知识。
第5章和6章介绍面向对象的编程思想：抽象、封装、继承多态。本书中这两章内容最重要，读者必须掌握其中的很多概念。
第7章介绍面向对象的分析与设计思想以及一些常用的设计习惯，对后期编程起到一定的指导作用。
第8章和9章介绍一些常用的适用类，对编程思想的运用和快速开发起到辅助作用。
第10章介绍Java异常处理机制，这章是Java语言在健壮性上的体现，建议读者能熟练掌握。
第11章介绍常用的数据结构和泛型机制，对一些常用的集合类建议读者能熟练掌握。
第12章介绍Java多线程的相关知识，重点在于理解多线程的运行机制及线程同步的机制。
第13章介绍IO流，主要用来对文件的读、写等操作。
第14章介绍GUI图形界面编程，包括AWT抽象窗口工具包和Swing组件等，对本章的内容读者了解即可。
第15、16和19章分别介绍反射、注解和Socket网络等编程相关知识，多了解这些知识对开发将会有非常大的帮助。
作者简介
张孝祥，北京传智播客教育科技有限公司教学总监。著有《Java就业培训教程》、《JavaScript网页开发》、《深入体验Java Web开发内幕—核心基础》、《深入体验Java Web开发内幕一高级特性》、《JavamB件开发详解》等一系列Java畅销书籍，发布了中国第一套Java学习视频，被誉为“中国Java培训第一人”。张孝祥老师精通C/C++、VC、VB、Java、SQL Server、0racle等编程语言和数据库系统，善于解剖和分析问题，善于使用生动形象的比喻，能将复杂的、难于理解的问题与知识简单化讲解。
图书目录
第1章
1.1 Java语言发展简史2
1.2 认识Java语言3
1.2.1 Java语言特性3
1.2.2 JavaApplet4
1.2.3 丰富的类库4
1.2.4 Java的竞争对手5
1.2.5 Java在应用领域的优势7
1.3 Java平台的体系结构7
1.3.1 JavaSE标准版8
1.3.2 JavaEE企业版10
1.3.3 JavaME微型版11
1.4 JavaSE环境安装和配置12
1.4.1 什么是JDK12
1.4.2 JDK安装目录和实用命令工具介绍12
1.4.3 设置环境变量13
1.4.4 验证配置的正确性14
1.5 MyEcilpse工具介绍JavaSE环境安装和配置15
1.6 本章练习16
第2章
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.4 Java类库组织结构和文档27
2.5 Java虚拟机简介28
2.6 Java技术两种核心运行机制29
2.7 上机练习30
第3章
3.1 变量32
3.1.1 什么是变量32
3.1.2 为什么需要变量32
3.1.3 变量的声明和赋值33
3.1.4 变量应用实例33
3.2 数据的分类34
3.2.1 Java中的八种基本数据类型34
3.2.2 普及二进制36
3.2.3 进制间转换37
3.2.4 基本数据类型间转换38
3.2.5 数据类型应用实例38
3.2.6 引用数据类型39
3.3 关键字.标识符.常量39
3.3.1 变量命名规范39
3.3.2 经验之谈－常见错误的分析与处理40
3.3.3 Java标识符命名规则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 逻辑操作符48
3.4.5 位操作符49
3.4.6 移位运算符49
3.4.7 其他操作符50
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.3 switch结构59
3.6.4 经验之谈-常见错误的分析与处理65
3.6.5 Switch和多重if结构比较66
3.7 循环语句66
3.7.1 While循环67
3.7.2 经验之谈-常见while错误70
3.7.3 do-while循环72
3.7.4 for循环74
3.7.5 经验之谈-for常见错误76
3.7.6 循环语句小结78
3.7.7 break语句79
3.7.8 continue语句82
3.8 JavaDebug技术84
3.9 本章练习85
第4章
4.1 一维数组90
4.1.1 为什么要使用数组90
4.1.2 什么是数组91
4.1.3 如何使用数组92
4.1.4 经验之谈-数组常见错误97
4.2 常用算法98
4.2.1 平均值,最大值,最小值98
4.2.3 数组排序102
4.2.3 数组复制103
4.3 多维数组105
4.3.1 二重循环105
4.3.2 控制流程进阶107
4.3.3 二维数组111
4.4 经典算法113
4.4.1 算法-冒泡排序113
4.4.2 插入排序115
4.5 增强for循环116
4.6 本章练习117
第5章
5.1 面向过程的设计思想120
5.2 面向对象的设计思想120
5.3 抽象121
5.3.1 对象的理解121
5.3.2 Java抽象思想的实现122
5.4 封装124
5.4.1 对象封装的概念理解124
5.4.2 类的理解125
5.4.3 Java类模板创建125
5.4.4 Java中对象的创建和使用127
5.5 属性130
5.5.1 属性的定义130
5.5.2 变量131
5.6 方法132
5.6.1 方法的定义132
5.6.2 构造方法135
5.6.4 方法重载138
5.6.5 自定义方法138
5.6.6 系统提供方法139
5.6.7 方法调用140
5.6.8 方法参数及其传递问题144
5.6.9 理解main方法语法及命令行参数147
5.6.1 0递归算法147
5.7 this关键字148
5.8 JavaBean149
5.9 包150
5.9.1 为什么需要包？150
5.9.2 如何创建包151
5.9.3 编译并生成包：151
5.9.4 使用带包的类152
5.9.5 JDK中常用包介绍152
5.1 0本章练习153
第6章
6.1 继承156
6.1.1 Java的继承思想实现157
6.1.2 super关键字158
6.2 Object类160
6.3 多态161
6.3.1 多态概念的理解161
6.3.2 Java中多态的实现162
6.2.3 类型检测.向上转型.向下转型164
6.2.4 动态绑定166
6.4 访问修饰符167
6.5 static修饰符168
6.5.1 静态变量168
6.5.2 静态方法169
6.5.3 静态代码块169
6.5.4 单态模式170
6.6 final修饰符171
6.7 abstract修饰符172
6.8 接口173
6.8.1 接口的定义及实现174
6.8.2 接口中的常量174
6.8.3 接口的多重实现174
6.9 本章练习175
第7章
7.1 面向对象的分析与设计简介180
7.1.1 类的设计建议180
7.1.2 类名.变量名.方法名的选取181
7.1.3 类的属性设计建议182
7.1.4 类的方法设计建议182
7.1.5 继承的设计建议182
7.2 对象模型建立183
7.2.1 UML简介183
7.2.2 用例图184
7.2.3 类图185
7.2.4 序列图187
7.2.5 状态图188
7.2.6 活动图189
7.2.7 组件图190
7.2.8 部署图190
7.3 类之间的关系191
7.4 软件的可维护与复用设计原则194
7.5 本章练习199
第8章
8.1 内部类和内部接口202
8.1.1 非静态成员内部类203
8.1.2 局部内部类206
8.1.3 静态内部类209
8.1.4 匿名内部类211
8.2 对象包装器213
8.3 装箱和拆箱216
8.4 本章习题218
第9章
9.1 String类220
9.1.1 字符串常量221
9.1.2 字符串对象操作224
9.1.3 字符串对象修改228
9.1.4 类型转换230
9.2 StringBuffer类的使用231
9.3 StringBuilder类的使用233
9.4 日期类简介234
9.5 Java语言国际化时间获取与计算238
9.6 Random类和Math类240
9.7 本章习题243
第10章
10.1 异常概述246
10.2 使用try和catch捕获异常..2 50
10.3 使用throw和throws引发异常252
10.4 finally关键字255
10.5 getMessage和printStackTrace方法258
10.6 多重catch259
10.7 自定义异常类260
10.8 本章习题261
第11章
11.1 Java集合框架概述264
11.2 Collection接口264
11.2 Set接口实现类266
11.2.1 实现类HashSet267
11.2.2 实现类LinkHashSet270
11.2.3 实现类TreeSet272
11.3 List接口实现类277
11.3.1 实现类ArrayList277
11.3.2 实现类LinkedList279
11.3.3 实现类Vector281
11.4 Map接口283
11.4.1 实现类HashMap284
11.4.2 实现类LinkedHashMap285
11.4.3 实现类TreeMap286
11.4.4 实现类Properties287
11.5 Collections类288
11.6 泛型概述292
11.7 本章习题300
第12章
12.1 理解线程304
12.1.1 什么是多线程304
12.1.2 进程和线程的区别304
12.1.3 线程的创建和启动305
12.1.4 Thread类介绍308
12.1.5 为什么需要多线程309
12.1.6 线程分类309
12.2 线程的生命周期309
12.2.1 线程的状态及转换310
12.2.2 线程睡眠311
12.2.3 线程让步313
12.2.4 线程的加入313
12.3 线程的调度和优先级314
12.4 线程的同步315
12.4.1 线程同步的方法317
12.4.2 对象锁319
12.4.3 wait和notify方法320
12.4.4 死锁322
12.5 集合类的同步问题323
12.5.1 使用synchronized同步块324
12.5.2 使用集合工具类同步化集合类对象324
12.5.3 使用JDK5.0后提供的并发集合类324
12.6 用Timer类调度任务325
12.7 本章练习326
第13章
13.1 java.io.File类328
13.1.1 文件和目录是什么？328
13.1.2 Java对文件和目录的操作328
13.2 JavaIO原理332
13.3 流类结构333
13.3.1 InputStream和OutputStream333
13.3.2 Reader和Writer334
13.4 文件流336
13.4.1 FileInputStream和FileOutputStream336
13.4.2 FileReader和FileWriter338
13.5 缓冲流340
13.6 转换流341
13.7 数据流342
13.8 打印流344
13.9 对象流345
13.9.1 序列化和反序列化操作345
13.9.2 序列化的版本347
13.1 0随机存取文件流348
13.1 1ZIP文件流350
13.1 2本章练习352
第14章
14.1 抽象窗口工具集(AWT)354
14.1.1 AWT组件和容器354
14.1.2 布局管理器359
14.2 事件处理机制365
14.2.1 事件监听器366
14.2.2 事件适配器(EventAdapter)370
14.3 AWT常用组件372
14.3.1 界面组件372
14.3.2 菜单组件377
14.3.3 其他组件382
14.4 Swing简介383
14.4.1 Swing体系图383
14.4.2 Swing组件应用384
14.5 声音的播放和处理397
14.6 2D图形的绘制400
14.7 MyEclipse图形化插件SWTDesigner简介402
14.6.1 SWTDesigner的下载和安装403
14.6.2 SWTDesigner开发实例404
14.8 JBuilder工具软件简介406
14.8 本章习题409
第15章
15.1 反射概述412
15.1.1 Java中的反射机制412
15.1.2 Java反射API412
15.1.3 Class类413
15.2 使用Java反射机制414
15.2.1 获取类型信息414
15.2.2 创建对象417
15.2.3 调用方法419
15.2.4 访问成员变量的值421
15.2.5 操作数组422
15.3 反射与动态代理424
15.3.1 静态代理424
15.3.2 动态代理426
15.4 本章练习427
第16章
16.1 注解概述430
16.2 JDK内置的基本注解类型430
16.2.1 重写Override430
16.2.2 警告Deprecated431
16.2.3 抑制警告SuppressWarnings433
16.3 自定义注解类型433
16.4 对注解进行注解435
16.4.1 目标Target435
16.4.2 类型Retention436
16.4.3 文档Documented437
16.4.4 继承Inherited437
16.5 利用反射获取注解信息438
16.6 上机练习440
17.1 功能描述442
17.2 总体设计442
17.3 代码实现442
17.4 程序的运行与发布457
17.5 本章练习460
第18章
18.1 JDBC简介462
18.2 JDBC类和接口462
18.2.1 DriverManager类464
18.2.2 Connection接口466
18.2.3 Statement接口466
18.2.3 PreparedStatement接口467
18.2.4 ResultSet接口467
18.3 JDBC操作SQL469
18.4 JDBC基本示例473
18.5 JDBC应用示例479
18.6 本章习题492
第19章
19.1 网络编程的基本概念494
19.1.1 网络基础知识494
19.1.2 网络基本概念495
19.1.3 网络传输协议496
19.2 Java网络类和接口497
19.3 InetAddress类498
19.4 URL和URLConnection类499
19.5 Scoket套接字505
19.6 Datagram套接字509
19.7 综合示例512
19.8 本章习题520
第20章
20.1 网络版五子棋522
20.1.1 需求描述522
20.1.2 功能分析522
20.1.3 网络五子棋界面设计523
20.1.4 网络五子棋运行效果533
20.2 网络版QQ534
20.2.1 需求描述535
20.2.2 功能分析535
20.2.3 主要功能实现535
20.3 本章练习565