第1章 Java简介 1
1.1 Java的诞生及其影响 1
1.2 Java的特征 1
目录 1
1.2.1 简单 2
1.2.2 面向对象 2
1.2.3 分布式 2
1.2.4 健壮 2
1.2.7 解释执行 3
1.2.8 高性能 3
1.2.6 可移植 3
1.2.5 体系结构中立 3
1.2.9 多线程 4
1.2.10 动态 4
1.3 安装Java开发工具 4
1.3.1 JDK的取得 4
1.3.2 安装并测试 4
1.4 JDK开发工具包 9
1.4.1 Javac 9
1.4.2 Java 10
1.4.3 Javadoc 10
1.4.4 jar 13
1.4.5 Javah 14
1.4.6 Javap 15
1.4.7 appletviewer 16
1.4.8 jdb 16
1.4.9 native2ascii 17
1.4.10 extcheck 18
1.5 Java的应用前景 18
1.6 本章小结 19
第2章 Java语言基础 20
2.1 Java关键字和标识符 20
2.1.1 标识符 20
2.1.2 关键字 20
2.2.2 常量 21
2.2.1 Java数据类型 21
2.2 Java数据类型、常量和变量 21
2.2.3 变量 22
2.3 简单数据类型 23
2.3.1 整数类型 23
2.3.2 浮点类型 24
2.3.3 字符类型 25
2.3.4 布尔类型 26
2.3.5 综合举例 26
2.3.6 自动类型转换与强制类型转换 27
2.4 Java运算符及表达式 28
2.4.1 Java运算符简介 28
2.4.2 算术运算符 29
2.4.3 关系运算符 30
2.4.5 按位运算符 31
2.4.4 布尔逻辑运算符 31
2.4.6 赋值运算符 32
2.4.7 条件运算符 33
2.4.8 表达式及运算符优先级 34
2.5 数组 35
2.6 字符串 36
2.6.1 字符串的初始化 37
2.6.2 String和StringBuffer 37
2.6.3 字符串的访问 37
2.6.4 修改字符串 38
2.7.1 条件语句 39
2.7 Java流程控制 39
2.7.2 循环语句 40
2.7.3 转移语句 41
2.8 本章小结 42
第3章 面向对象思想 43
3.1 结构化程序设计的方法 43
3.2 面向对象的编程思想 43
3.2.1 什么是对象 43
3.2.2 什么是面向对象 44
3.2.3 什么是类 44
3.2.4 学会抽象整个世界——实体、对象和类 44
3.3.1 继承 46
3.2.5 面向对象方法——抽象的进步 46
3.3 面向对象的特点 46
3.3.2 封装 47
3.3.3 多态性 48
3.4 面向对象方法的优点 48
3.5 面向对象的软件开发方法(OMT) 49
3.6 本章小结 51
第4章 Java的面向对象设计 52
4.1 类和类的实例化 52
4.1.1 定义类的结构 52
4.1.2 类的实例化 55
8.5.2 ObjectOutputStrearm类 1 60
4.2 Java的内存使用机制 60
4.3.1 抽象类 62
4.3 抽象类和接口 62
4.3.2 接口 63
4.4 命名空间与包 64
4.4.1 包(package)的基本概念 65
4.4.2 自定义一个包 65
4.4.3 源文件(.Java)与类文件(.class)的管理 65
4.5 现有类的使用 66
4.5.1 访问权限 66
4.5.2 使用import导入已有类 69
4.5.3 类的继承和多态 69
4.6.2 API文档使用范例 72
4.6 Java API文档 72
4.6.1 API文档结构介绍 72
4.7 本章小结 74
第5章 类的高级特性 76
5.1 静态变量和方法 76
5.1.1 静态变量 76
5.1.2 静态方法 77
5.2 常量、最终方法和最终类 78
5.2.1 常量 78
5.2.2 最终方法 78
5.2.3 最终类 78
5.3 抽象类和抽象方法的使用 79
5.4 接口的使用 79
5.4.1 接口的概念 80
5.4.2 定义接口 80
5.4.3 执行接口 81
5.4.4 使用接口 82
5.5 内部类的使用 83
5.5.1 使用内部类的共同方法 83
5.5.2 内部类 84
5.5.3 内部类属性 85
5.6 本章小结 85
6.2 基本数据结构 86
6.2.1 向量 86
6.1 抽象数据类型 86
第6章 数据结构 86
6.2.2 线性表 88
6.2.3 堆栈 97
6.2.4 队列 100
6.2.5 树 102
6.2.6 图 106
6.3 Java实现 109
6.3.1 递归 109
6.3.2 链表示例 111
6.3.3 链表实现堆栈 112
6.3.4 链表实现队列 114
6.3.5 双向链表的实现 115
6.4 本章小结 127
第7章 异常处理 128
7.1.1 异常的概念 128
7.1 异常机制简述 128
7.1.2 异常的分类 130
7.2 Java异常体系 130
7.2.1 捕获异常 131
7.2.2 声明异常 132
7.2.3 抛出异常 133
7.2.4 自定义异常 134
7.3 本章小结 136
第8章 Java输入/输出系统 137
8.1 Java输入/输出体系 137
8.2 字节流 139
8.2.1 InputStream类 139
8.2.2 OutputStream类 140
8.2.3 FileInputStream类 141
8.2.4 FileOutputStream类 143
8.2.5 ByteArrayInputStream类 145
8.2.6 ByteArrayOutputStream类 145
8.2.7 管道流PipedInputStream类和PipedOutputStream类 147
8.2.8 过滤流FilterInputStream类和FilterOutputStream类 148
8.3 字符流 148
8.3.1 Reader类 148
8.3.2 Writer类 149
8.3.3 FileReader类 150
8.3.6 CharArrayWriter类 152
8.3.5 CharArrayReader类 152
8.3.4 FileWriter类 152
8.3.7 PushbackReader类 154
8.4 文件的读写操作 155
8.5 对象序列化及其恢复 159
8.5.1 Serializable接口 159
8.5.3 ObjectInputStream类 160
8.6 本章小结 163
第9章 创建Java Applet 164
9.1 Applet类 164
9.2 Applet概述 164
9.3.1 波浪形文字 165
9.3 Applet的使用技巧 165
9.3.2 大小变化的文字 169
9.3.3 星空动画 178
9.3.4 时钟 184
9.4 本章小结 187
第10章 多线程 188
10.1 多线程的概念 188
10.1.1 多线程 188
10.1.2 Java中的多线程 189
10.1.3 线程组 189
10.2 线程的创建 189
10.2.2 通过继承Thread类创建线程 190
10.2.1 通过实现Rurnable接口创建线程 190
10.2.3 两种线程创建方法的比较 191
10.3 线程的调度与控制 191
10.3.1 线程的调度与优先级 191
10.3.2 线程的控制 192
10.4 线程的状态与生命周期 194
10.5 线程的同步 195
10.6 线程的通信 198
10.7 线程池 201
10.8 本章小结 205
11.1.2 根组件(Component) 206
11.1.1 Javaawt包 206
11.1 AWT及其根组件 206
第11章 图形用户界面 206
11.2 容器(Container)和组件 207
11.3 布局管理器(Layout Manager) 208
11.3.1 FlowLayout布局管理器 209
11.3.2 BorderLayout布局管理器 210
11.3.3 GridLayout布局管理器 213
11.3.4 CardLayout布局管理器 215
11.3.5 GridBagLayout布局管理器 218
11.3.6 null布局管理器 220
11.4 本章小结 221
12.1.1 Component类 222
12.1 AWT基本组件 222
第12章 AWT基本组件和事件处理机制 222
12.1.2 AWT事件模型 225
12.2 GUI事件的处理 226
12.2.1 AWT事件继承层次 226
12.2.2 AWTEvent子类事件 228
12.2.3 监听器接口 229
12.3 几个简单组件 233
12.3.1 按钮(Button类) 233
12.3.2 标签(Label类) 233
12.3.3 文本组件(TextField类和TextArea类) 233
12.4 使用类的适配器(Adapter)进行事件处理 235
12.5 使用匿名类进行事件处理 238
12.6 本章小结 239
第13章 Swing用户界面组件 240
13.1 Swing组件库基本介绍 240
13.1.1 JFC和Swing 240
13.1.2 Swing包概览 241
13.1.3 Swing和AWT的区别 241
13.1.4 示例程序SwingApplication 242
13.2 Swing组件及其容器体系 247
13.2.1 JComponent类 247
13.2.2 AbstractButton及其子类 251
13.3 JComboBox组件和JList组件 264
13.5 JSlider类——滑杆 272
13.6 JInternalFrame类 274
13.7 本章小结 276
第14章 网络通信程序设计 277
14.1 Javanet包 277
14.2 socket编程 277
14.2.1 socket基础知识 277
14.2.2 socket机制分析 278
14.2.3 客户端编程 280
14.2.4 服务器端编程 282
14.2.5 服务器/客户端通信实例 284
14.2.6 Datagram Sockets编程 288
14.3 本章小结 293
15.1.2 JDBC——底层API 294
15.1.1 JDBC的概述 294
第15章 Java数据库连接机制——JDBc 294
15.1 JDBC介绍 294
15.1.3 JDBC的设计过程 295
15.1.4 JDBC和ODBC的比较 295
15.2 关系数据库和结构化查询语言 296
15.2.1 关系数据库 296
15.2.2 关系数据库的应用模型 297
15.2.3 结构化查询语言 298
15.3 JDBC应用程序编程接口 301
15.3.1 JDBC的类 301
15.3.2 DriverManager 302
15.3.3 JDBC驱动程序的类型 302
15.4.1 JDBC访问数据库的步骤 303
15.4 基本JDBC编程概念 303
15.4.2 创建一个数据源 304
15.4.3 数据库URL 306
15.4.4 建立与数据源的连接 307
15.4.5 发送SQL语句 308
15.4.6 处理查询结果 309
15.5 基本的JDBC应用程序 309
15.5.1 JDBC在应用程序中的应用 309
15.5.2 JDBC在Applet中的使用 311
15.6 JDBC API的主要界面 314
15.6.1 Statement 314
15.6.2 ResultSet 315
15.6.3 PreparedStatement 317
15.6.4 CallableStatement 319
15.7 本章小结 320
第16章 servlet 321
16.1 servlet综述 321
16.1.1 什么是servlet 321
16.1.2 servlet的生命周期 322
16.1.3 servlet与其他开发技术的比较 323
16.1.4 servlet的应用范围 325
16.1.5 配置servlet的开发的环境 326
16.2 servlet编程 327
16.2.1 HTTP协议介绍 328
16.2.2 简单程序servlet 329
16.2.3 会话跟踪 334
16.2.4 Servlet协作 337
16.3 servlet编程实践 338
16.3.1 过滤器介绍 339
16.3.2 编程框架 341
16.3.3 其他特征 343
16.4 本章小结 346
第17章 Struts入门 347
17.1 MVC框架 347
17.1.1 MVC模式 347
17.1.2 基于Web应用的MVC模式 348
17.2 Struts结构和处理流程 349
17.3 Struts组件 350
17.3.1 Web应用程序的配置 350
17.3.2 控制器 351
17.3.3 struts-config.xml文件 351
17.3.7 模型组件 352
17.4 Struts应用实例 352
17.4.1 Struts在Web应用程序中的基本安装 352
17.3.6 ActionForm 352
17.3.5 视图资源 352
17.3.4 Action类 352
17.4.2 Web应用的国际化和本地化 353
17.4.3 使用 Struts中的Form(表单)——ActionForm 355
17.5 本章小结 365
第18章 J2EE概述 366
18.1 J2EE综述 366
18.1.1 J2EE的主要特征 366
18.1.2 J2EE的架构 367
18.1.3 J2EE应用场景描述 368
18.2 客户端层技术 369
18.2.1 客户端层的问题 369
18.2.2 客户端层的解决方案 371
18.3.1 Web层的目的 372
18.3 Web层技术 372
18.3.2 Web层的解决方案 373
18.4 EJB层技术 376
18.4.1 EJB组件结构 376
18.4.2 EJB层的目的 377
18.4.3 EJB层的解决方案 378
18.5 本章小结 380
第19章 J2ME概述 381
19.1 J2ME综述 381
19.2 CLDC介绍 382
19.2.1 CLDC类库介绍 383
19.2.2 MIDLET介绍 384
19.2.3 MIDlet界面 385
19.3 CDC介绍 386
19.4 本章小结 387
第20章 Java的平台无关性 388
20.1 什么可以移植 388
20.1.1 源代码可移植性 388
20.1.2 CPU可移植性 388
20.1.3 操作系统可移植性 389
20.2 解决国际化问题 389
20.2.1 Java类包 390
20.2.2 参数化解决方法 391
20.2.3 处理提示和帮助 392
20.3 编写跨平台Java程序的注意事项 394
20.4 本章小结 395
第21章 常用的类和包 396
21.1 Java.io包 396
21.1.1 序列化 396
21.1.2 字节流 396
21.1.3 字符流 400
21.1.4 字节流与字符流的转化 405
21.1.5 文件处理 406
21.2 Java.lang包 409
21.2.1 接口Comparable 409
21.2.2 接口Runnable 410
21.2.3 包装类 410
21.2.4 类Object 418
21.2.5 字符串处理 420
21.2.6 类System 426
21.2.7 类Thread 428
21.2.8 类Throwable 430
21.3 Java.util包 431
21.3.1 接口Collection 431
21.3.2 接口Iterator 433
21.3.3 接口List 434
21.3.4 接口ListIterator 437
21.3.5 类ArrayList 438
21.3.6 类LinkedList 440
21.3.7 类Stack 442
21.3.8 类Vector 443
21.3.9 应用实例 446
21.4 本章小结 449
第22章 Java编码规范 450
22.1 概述 450
22.2 基本原则 450
22.2.1 取个好名字 450
22.2.2 三种Java注释 451
22.3 成员方法 451
22.3.1 方法命名 451
22.3.2 注释 452
22.3.4 小技巧 453
22.3.3 编写清晰、易懂的代码 453
22.4 成员变量 454
22.4.1 普通变量的命名 454
22.4.2 窗口组件的命名 454
22.4.3 常量的命名 454
22.4.4 注释 454
22.5 类和接口 454
22.5.1 类和接口的命名 454
22.5.2 注释 455
22.6 Java源文件范例 455
22.7 本章小结 457
附录A J2SDK工具和Java集成开发环境 458
附录B Java站点资源 467