第1章 Java及Java开发环境概述 1
1.1 Java的诞生及其影响 1
1.2 Java的特征 1
1.2.1 简单 2
1.2.2 面向对象 2
1.2.3 分布式 2
1.2.4 健壮 2
1.2.5 体系结构中立 3
1.2.6 可移植 3
1.2.7 解释执行 3
1.2.8 高性能 3
1.2.9 多线程 4
1.2.10 动态 4
1.3 Java5.0新特性 4
1.4 安装Java开发工具 5
1.4.1 JDK的取得 5
1.4.2 安装并测试 5
1.5 JDK开发工具包 9
1.5.1 Javac 9
1.5.2 Java 10
1.5.3 Javadoc 10
1.5.4 jar 13
1.5.5 Javah 14
1.5.6 Javap 15
1.5.7 appletviewer 15
1.5.8 jdb 16
1.5.9 native2ascii 17
1.5.10 extcheck 17
1.6 Java集成开发环境简介 18
1.6.1 Eclipse发展背景 18
1.6.2 Eclipse工作台简介 18
第2章 Java语言基础 23
2.1 Java关键字和标识符 23
2.1.1 标识符 23
2.1.2 关键字 23
2.2 Java数据类型、常量和变量 24
2.2.1 Java数据类型 24
2.2.2 常量 24
2.2.3 变量 25
2.3 简单数据类型 26
2.3.1 整数类型 26
2.3.2 浮点类型 27
2.3.3 字符类型 28
2.3.4 布尔类型 29
2.3.5 枚举类型 29
2.3.6 综合举例 29
2.3.7 自动类型转换与强制类型转换 30
2.4 Java运算符及表达式 31
2.4.1 Java运算符简介 31
2.4.2 算术运算符 32
2.4.3 关系运算符 33
2.4.4 布尔逻辑运算符 33
2.4.5 按位运算符 34
2.4.6 赋值运算符 35
2.4.7 条件运算符 36
2.4.8 表达式及运算符优先级 36
2.5 数组 37
2.6 字符串 39
2.6.1 字符串的初始化 39
2.6.2 String和StringBuffer类 40
2.6.3 StringBuilder类 40
2.6.4 字符串的访问 40
2.6.5 修改字符串 41
2.7 Java流程控制 41
2.7.1 条件语句 41
2.7.2 循环语句 42
2.7.3 转移语句 43
第3章 面向对象思想 45
3.1 结构化程序设计的方法 45
3.2 面向对象的编程思想 45
3.2.1 什么是对象 45
3.2.2 什么是面向对象 46
3.2.3 什么是类 46
3.2.4 学会抽象整个世界——实体、对象和类 46
3.2.5 面向对象方法——抽象的进步 47
3.3 面向对象的特点 48
3.3.1 继承 48
3.3.2 封装 49
3.3.3 多态性 49
第4章 Java面向对象设计 50
4.1 类和类的实例化 50
4.1.1 定义类的结构 50
4.1.2 类的实例化 52
4.2 Java内存使用机制 57
4.3 抽象类和接口 59
4.3.1 抽象类 59
4.3.2 接口 59
4.4 命名空间与包 61
4.4.1 包的基本概念 61
4.4.2 自定义一个包 61
4.4.3 源文件与类文件的管理 62
4.5 现有类的使用 62
4.5.1 访问权限 62
4.5.2 使用import导入已有类 64
4.5.3 静态导入 65
4.5.4 类的继承和多态 65
第5章 类的高级特性 68
5.1 静态变量和方法 68
5.1.1 静态变量 68
5.1.2 静态方法 69
5.2 常量、最终方法和最终类 70
5.2.1 常量 70
5.2.2 最终方法 70
5.2.3 最终类 70
5.3 抽象类和抽象方法的使用 70
5.4 接口的使用 71
5.4.1 接口的概念 71
5.4.2 定义接口 72
5.4.3 执行接口 73
5.4.4 使用接口 73
5.5 内部类的使用 74
5.5.1 使用内部类的共同方法 74
5.5.2 内部类 75
5.5.3 内部类属性 76
第6章 数据结构 77
6.1 抽象数据类型 77
6.2 基本数据结构 77
6.2.1 向量 77
6.2.2 线性表 78
6.2.3 堆栈 86
6.2.4 队列 89
6.2.5 树 90
6.2.6 图 93
第7章 Java异常处理 96
7.1 异常机制简述 96
7.1.1 异常的概念 96
7.1.2 异常的分类 97
7.2 Java异常体系 98
7.2.1 捕获异常 98
7.2.2 声明异常 100
7.2.3 抛出异常 100
7.2.4 自定义异常 101
第8章 Java输入/输出系统 103
8.1 Java输入/输出体系 103
8.2 字节流 105
8.2.1 InputStream类 105
8.2.2 OutputStream类 106
8.2.3 FileInputStream类 106
8.2.4 FileOutputStream类 108
8.2.5 ByteArrayInputStream类 109
8.2.6 ByteArrayOutputStream类 110
8.2.7 管道流PipedInputStream和PipedOutputStream类 111
8.2.8 过滤流FilterInputStream和FilterOutputStream类 112
8.3 字符流 112
8.3.1 Reader类 113
8.3.2 Writer类 113
8.3.3 FileReader类 114
8.3.4 FileWriter类 115
8.3.5 CharArrayReader类 116
8.3.6 CharArrayWriter类 116
8.3.7 PushbackReader类 117
8.4 文件的读写操作 119
8.5 对象序列化及其恢复 122
8.5.1 Serializable接口 122
8.5.2 ObjectOutputStream类 122
8.5.3 ObjectInputStream类 123
第9章 创建Java Applet 126
9.1 Applet类 126
9.2 Applet概述 126
9.3 Applet的使用技巧 127
9.3.1 波浪形文字 127
9.3.2 大小变化的文字 129
9.3.3 星空动画 137
9.3.4 时钟 141
第10章 多线程 143
10.1 多线程的概念 143
10.1.1 多线程 143
10.1.2 Java中的多线程 144
10.1.3 线程组 144
10.2 线程的创建 144
10.2.1 通过实现Runnable接口创建线程 145
10.2.2 通过继承Thread类创建线程 145
10.2.3 两种线程创建方法的比较 146
10.3 线程的调度与控制 146
10.3.1 线程的调度与优先级 146
10.3.2 线程的控制 147
10.4 线程的状态与生命周期 148
10.5 线程的同步 149
10.6 线程的通信 151
10.7 线程池 154
第11章 图形用户界面 158
11.1 AWT及其根组件 158
11.1.1 java.awt包 158
11.1.2 根组件(Component) 158
11.2 容器(Container)和组件 159
11.3 布局管理器(Layout Manager) 160
11.3.1 FlowLayout布局管理器 161
11.3.2 BorderLayout布局管理器 161
11.3.3 GridLayout布局管理器 164
11.3.4 CardLayout布局管理器 165
11.3.5 GridBagLayout布局管理器 167
11.3.6 null布局管理器 169
第12章 AWT基本组件及事件处理机制 170
12.1 AWT基本组件 170
12.1.1 Component类 170
12.1.2 AWT事件模型 173
12.2 GUI事件的处理 174
12.2.1 AWT事件继承层次 174
12.2.2 AWTEvent子类事件 175
12.2.3 监听器接口 176
12.3 几个简单组件 180
12.3.1 按钮(Button类) 180
12.3.2 标签(Label类) 180
12.3.3 文本组件(TextField和TextArea类) 180
12.4 使用类适配器(Adapter)进行事件处理 181
12.5 使用匿名类进行事件处理 184
第13章 Swing用户界面组件 186
13.1 Swing组件库简介 186
13.1.1 JFC和Swing 186
13.1.2 Swing包概览 187
13.1.3 Swing和AWT的区别 187
13.1.4 示例程序SwingApplication 188
13.2 Swing组件及其容器 192
13.2.1 JComponent类 192
13.2.2 AbstractButton及其子类 195
13.3 JComboBox和JList组件 206
13.4 JSlider类——滑杆 213
13.5 JInternalFrame类 215
第14章 网络通信程序设计 217
14.1 java.net包 217
14.2 socket编程 217
14.2.1 socket基础知识 217
14.2.2 socket机制分析 218
14.2.3 客户端编程 220
14.2.4 服务器端编程 222
14.2.5 服务器/客户端通信实例 223
14.2.6 Datagram Sockets编程 226
第15章 Java数据库访问机制——JDBC 232
15.1 JDBC介绍 232
15.1.1 JDBC的概述 232
15.1.2 JDBC——底层API 232
15.1.3 JDBC的设计过程 233
15.1.4 JDBC和ODBC的比较 233
15.2 关系数据库和SQL 234
15.2.1 关系数据库 234
15.2.2 关系数据库的应用模型 235
15.2.3 结构化查询语言 236
15.3 JDBC应用程序编程接口 239
15.3.1 JDBC的类 239
15.3.2 DriverManager 239
15.3.3 JDBC驱动程序的类型 240
15.4 JDBC编程基础 241
15.4.1 JDBC访问数据库 241
15.4.2 创建一个数据源 241
15.4.3 数据库URL 243
15.4.4 建立与数据源的连接 244
15.4.5 发送SQL语句 245
15.4.6 处理查询结果 245
15.5 基本JDBC应用程序 246
15.5.1 JDBC在应用程序中的应用 246
15.5.2 JDBC在Applet中的使用 247
15.6 JDBC API的主要界面 250
15.6.1 Statement 250
15.6.2 ResultSet 251
15.6.3 PreparedStatement 252
15.6.4 CallableStatement 254
15.7 事务管理 255
15.7.1 保存点 256
15.7.2 批量更新 256
15.8 高级连接管理 257
第16章 servlet 259
16.1 servlet综述 259
16.1.1 什么是servlet 259
16.1.2 servlet的生命周期 260
16.1.3 servlet与其他开发技术的比较 261
16.1.4 servlet的应用范围 263
16.1.5 配置servlet的开发的环境 264
16.2 servlet编程 265
16.2.1 HTTP协议介绍 265
16.2.2 简单程序servlet 267
16.2.3 会话跟踪 270
16.2.4 Servlet协作 273
第17章 Struts与Hibernate入门 275
17.1 MVC框架 275
17.1.1 MVC模式 275
17.1.2 基于Web应用的MVC模式 276
17.2 Struts结构和处理流程 276
17.3 Struts组件 277
17.3.1 Web应用程序的配置 277
17.3.2 控制器 278
17.3.3 struts-config.xml文件 279
17.3.4 Action类 279
17.3.5 视图资源 279
17.3.6 ActionForm 279
17.3.7 模型组件 280
17.4 Hibernate简介 280
17.4.1 第一个Hibernate程序 280
17.4.2 关联映射 289
第18章 J2EE基础 295
18.1 J2EE综述 295
18.1.1 J2EE的主要特征 295
18.1.2 J2EE的架构 296
18.1.3 J2EE应用场景描述 297
18.2 客户端层技术 298
18.2.1 客户端层的问题 298
18.2.2 客户端层的解决方案 299
18.3 Web层技术 300
18.3.1 Web层的目的 300
18.3.2 Web层的解决方案 301
18.4 EJB层技术 304
18.4.1 EJB组件结构 304
18.4.2 EJB层的目的 306
18.4.3 EJB层的解决方案 306
第19章 J2ME概述 309
19.1 J2ME综述 309
19.2 CLDC介绍 310
19.2.1 CLDC类库介绍 311
19.2.2 MIDLET介绍 312
19.2.3 MIDlet界面 313
19.3 CDC概述 314
第20章 Java跨平台特性 315
20.1 可移植性 315
20.1.1 源代码可移植性 315
20.1.2 CPU可移植性 315
20.1.3 操作系统可移植性 316
20.2 解决国际化问题 316
20.2.1 Java类包 317
20.2.2 参数化解决方法 318
20.2.3 处理提示和帮助 318
20.3 编写跨平台Java程序的注意事项 320
第21章 Java泛型程序设计 322
21.1 简单泛型类的定义 322
21.2 泛型方法 323
21.3 类型变量的限定 324
21.4 泛型代码和虚拟机 325
21.4.1 翻译泛型表达式 326
21.4.2 翻译泛型方法 327
21.4.3 遗留代码调用 328
21.5 约束与限定 329
21.5.1 基本类型 329
21.5.2 运行时类型查询 329
21.5.3 异常 329
21.5.4 数组 330
21.5.5 泛型类型的实例化 330
21.5.6 静态上下文 331
21.5.7 擦除后的冲突 331
21.6 泛型类型的继承规则 332
21.7 通配符类型 333
21.7.1 通配符的超类型限定 333
21.7.2 无限定通配符 335
21.7.3 通配符抓取 335
21.8 反射和泛型 338
21.8.1 使用Class〈T〉参数进行类型匹配 339
21.8.2 虚拟机中的泛型类型信息 339
第22章 Java编码规范 342
22.1 概述 342
22.2 基本原则 342
22.2.1 取个好名字 342
22.2.2 三种Java注释 343
22.3 成员方法 343
22.3.1 方法命名 343
22.3.2 注释 344
22.3.3 编写清晰、易懂的代码 345
22.3.4 小技巧 345
22.4 成员变量 346
22.4.1 普通变量的命名 346
22.4.2 窗口组件的命名 346
22.4.3 常量的命名 346
22.4.4 注释 346
22.5 类和接口 346
22.5.1 类和接口的命名 346
22.5.2 注释 347
22.6 Java源文件范例 347
第23章 使用Eclipse进行Java程序开发 349
23.1 建立Java项目 349
23.2 建立Java类别 350
23.3 代码功能 350
23.3.1 Code Completion 350
23.3.2 Code Assist 351
23.4 执行Java程序 352
23.5 Java实时运算簿页面(Java Scrapbook Page) 353
23.6 自定义开发环境 355
23.6.1 程序代码格式 355
23.6.2 程序代码产生模板 356
23.6.3 Javadoc批注 357
附录A Java关键字 359
附录B Java站点资源 361