第1章 Java概述 1
1.1 Java的诞生 1
1.2 Java的技术特点 2
1.2.1 简明的语法结构 3
1.2.2 平台独立性 3
1.2.3 面向对象特征 4
1.2.4 面向网络环境 4
1.2.5 动态性 5
1.2.6 安全性 5
1.2.7 稳定性 6
1.2.8 多线程 6
1.2.9 类库丰富 6
1.3 Java与C/C++的差异 7
1.4 Java程序运行机制 8
1.5 Java运行时刻环境 9
1.5.1 Java虚拟机 9
1.5.2 Java平台 11
1.5.3 字节码介绍 12
1.5.4 编译与执行过程 12
1.5.5 垃圾收集 13
1.5.6 安全性问题 14
1.6 Java2 SDK 14
1.7 小结 16
习题 16
第2章 Java开发环境和程序范例 17
2.1 Java程序开发环境介绍 17
2.1.1 JDK软件包及其配置 17
2.1.2 JBuilder开发平台 21
2.2 HelloWorld应用程序 22
2.2.1 编辑源程序 22
2.2.2 应用程序结构剖析 23
2.2.3 编译并运行HelloWorld应用程序 24
2.3 编写Applet程序 25
2.3.1 Applet的定义 25
2.3.2 第一个Applet程序:HelloWorld 25
2.3.3 Applet程序结构剖析 26
2.3.4 运行Applet程序 27
2.4 小结 28
习题 29
第3章 Java程序设计基础 30
3.1 Unicode符号集 30
3.1.1 标识符 30
3.1.2 关键字 31
3.1.3 常量 31
3.1.4 运算符 31
3.1.5 分隔符 32
3.2 变量 32
3.2.1 基本数据类型 32
3.2.2 数据类型转换 33
3.2.3 变量定义和声明 34
3.2.4 变量命名 36
3.2.5 变量初始化 36
3.2.6 变量作用域 37
3.3 常量 39
3.3.1 整型常量 39
3.3.2 浮点型常量 39
3.3.3 布尔常量 39
3.3.4 字符常量 39
3.3.5 字符串常量 40
3.4 表达式与运算符 40
3.4.1 表达式 40
3.4.2 表达式的自动类型提升 41
3.4.3 运算符 42
3.4.4 运算符优先级 42
3.4.5 算术运算符 43
3.4.6 关系运算符 45
3.4.7 布尔逻辑运算符 46
3.4.8 位运算符 47
3.4.9 条件运算符 47
3.4.10 赋值运算符 48
3.5 对象与字符串运算符 49
3.5.1 对象运算符 49
3.5.2 字符串运算符 50
3.5.3 字符运算 53
3.6 数组 53
3.6.1 定义数组 53
3.6.2 创建数组 54
3.6.3 初始化数组 54
3.6.4 访问数组 55
3.6.5 多维数组 56
3.7 控制语句 57
3.7.1 条件语句 57
3.7.2 循环语句 61
3.7.3 转移语句 64
3.8 小结 67
习题 68
第4章 Java与面向对象技术 70
4.1 面向对象基础 70
4.1.1 面向过程编程与面向对象编程 70
4.1.2 面向对象编程的基本概念 71
4.1.3 面向对象编程的优点 71
4.2 类 71
4.2.1 类的结构 72
4.2.2 声明类 73
4.2.3 构造方法 73
4.2.4 析构方法 74
4.2.5 类修饰符 74
4.2.6 成员变量 75
4.2.7 特殊变量(null,this,super) 77
4.2.8 类转换 79
4.3 对象生命周期 79
4.3.1 创建对象 79
4.3.2 使用对象 81
4.3.3 释放对象 82
4.4 方法 82
4.4.1 方法定义 82
4.4.2 方法修饰符 83
4.4.3 方法重载 83
4.4.4 方法覆盖 84
4.4.5 main方法 85
4.5 抽象类和接口 86
4.5.1 抽象类 86
4.5.2 接口 86
4.6 包 88
4.6.1 声明 88
4.6.2 加载 89
4.7 面向对象程序设计简单实例 90
4.8 小结 92
习题 93
第5章 事件处理 94
5.1 事件 94
5.2 基于继承的事件模型 94
5.2.1 覆盖事件的处理方法 95
5.2.2 事件传递 97
5.2.3 构件标识 101
5.3 基于授权的事件模型 102
5.3.1 继承事件模型的不足 103
5.3.2 授权事件模型 103
5.3.3 事件类 105
5.3.4 事件监听者 105
5.3.5 适配器 106
5.3.6 基于授权事件模型的优点 109
5.4 高级事件处理 109
5.4.1 构件事件和语义事件 109
5.4.2 输入事件的消耗 110
5.4.3 语义事件 111
5.4.4 调度用户事件 112
5.5 小结 114
习题 114
第6章 异常处理 116
6.1 Java的程序错误处理机制 116
6.2 异常的分类 117
6.2.1 异常产生原因 117
6.2.2 异常分类 118
6.2.3 Throwable类 118
6.3 异常的捕捉和处理 119
6.3.1 捕捉异常 119
6.3.2 异常的嵌套 121
6.3.3 finally关键字 122
6.3.4 抛出异常 124
6.4 自定义异常类 125
6.5 异常处理的限制 128
6.6 小结 129
习题 130
第7章 输入和输出 131
7.1 流 131
7.2 java.io 132
7.3 输入流 133
7.3.1 InputStream 133
7.3.2 FileInputStream 133
7.3.3 ByteArrayInputStream 134
7.3.4 StringBufferlnputStream 134
7.3.5 SequenceInputStream 134
7.3.6 PipedInputStream 135
7.3.7 FilterInputStream 135
7.4 输出流 136
7.4.1 OutputStream 136
7.4.2 FileOutputStream 137
7.4.3 ByteArrayOutputStream 137
7.4.4 PipedOutputStream 137
7.4.5 FilterOutputStream 138
7.5 UTF字符流 138
7.5.1 UTF 138
7.5.2 字符流Reader和Writer 139
7.6 高级流 140
7.7 文件 141
7.7.1 File类 141
7.7.2 RandomAccessFile类 145
7.8 流的应用范例 146
7.8.1 StringBufferInputStream 146
7.8.2 文件输入/输出流 147
7.8.3 管道流与线程通信 149
7.8.4 存储器读/写 151
7.9 小结 153
习题 153
第8章 AWT与布局管理器 155
8.1 AWT 155
8.1.1 AWT简介 155
8.1.2 AWT类库层次 156
8.2 基本构件 157
8.2.1 基本构件类层次结构 157
8.2.2 标签 157
8.2.3 按钮 158
8.2.4 复选框 158
8.2.5 单行文本框 159
8.2.6 多行文本框 159
8.2.7 列表框 159
8.3 容器构件 160
8.3.1 容器构件特征 160
8.3.2 容器构件类层次结构 161
8.3.3 画布 161
8.3.4 面板 161
8.3.5 窗口 162
8.3.6 框架 166
8.3.7 对话框 167
8.3.8 文件对话框 167
8.4 菜单 168
8.4.1 菜单基本结构及其创建方法 168
8.4.2 菜单使用范例 169
8.5 布局管理器 172
8.5.1 布局管理器的功能和特点 172
8.5.2 构件的首选尺寸 173
8.5.3 强制容器布置构件 173
8.6 标准布局管理器 176
8.6.1 FlowLayout布局管理器 176
8.6.2 BorderLayout布局管理器 177
8.6.3 CardLayout布局管理器 177
8.6.4 GridLayout布局管理器 179
8.7 GridBagLayout布局管理器 179
8.7.1 约束变量 179
8.7.2 应用范例 182
8.8 null布局管理器 185
8.9 小结 185
习题 186
第9章 Swing构件 188
9.1 Swing构件特征 188
9.2 轻量构件和重量构件 189
9.3 Swing构件体系层次结构 190
9.4 JComponent构件类 191
9.5 Swing构件 193
9.6 Swing构件应用 193
9.7 小结 200
习题 200
第10章 Applet程序 202
10.1 Applet模型 202
10.1.1 Applet与Web 202
10.1.2 Applet运行时刻环境 203
10.1.3 Applet的限制 204
10.1.4 Applet的安全下载 205
10.2 Applet程序 205
10.2.1 什么是Applet程序 205
10.2.2 Applet程序的生命周期 206
10.2.3 日期显示小应用程序 211
10.3 获取资源 212
10.3.1 Image 214
10.3.2 AudioClip 214
10.3.3 URL 215
10.4 获取参数 216
10.5 小结 219
习题 220
第11章 多线程 221
11.1 多线程概念 221
11.2 Java多线程技术 223
11.3 线程的建立 224
11.3.1 扩展Thread类 224
11.3.2 Runnable接口 227
11.3.3 创建线程 227
11.3.4 线程的优先级 230
11.4 线程控制和管理 233
11.4.1 线程的生命周期 233
11.4.2 线程调度 236
11.4.3 线程通信 239
11.4.4 线程同步 241
11.4.5 死锁 246
11.5 线程分组 246
11.6 精灵线程与用户线程 247
11.7 多线程应用实例 247
11.8 小结 251
习题 252
第12章 网络编程 253
12.1 Socket通信 253
12.1.1 Socket类 253
12.1.2 ServerSocket类 255
12.1.3 InetAddress类 255
12.1.4 Socket通信过程和传输属性 257
12.1.5 创建Socket 258
12.1.6 关闭Socket 259
12.2 Socket通信程序范例 259
12.3 支持多客户连接的Socket通信 265
12.4 DatagramSocket通信 268
12.4.1 两个基本类 268
12.4.2 服务器程序 270
12.4.3 客户程序 271
12.5 多播传输 272
12.5.1 MulticastSocket类 273
12.5.2 MulticastSocket类的应用 274
12.6 URL 275
12.7 Java的互联网协议 277
12.8 小结 278
习题 279
第13章 Java安全性 280
13.1 引言 280
13.2 类装载器 281
13.2.1 装载类文件 281
13.2.2 自定义类装载器 282
13.3 字节码验证 282
13.4 安全管理器和权限 283
13.5 Java2平台安全机制 284
13.5.1 安全策略模型 284
13.5.2 权限使用 285
13.6 安全策略文件 286
13.6.1 工作机制 286
13.6.2 文件格式 287
13.6.3 策略文件应用 289
13.6.4 策略文件范例 289
13.7 小结 290
习题 291
第14章 JDBC编程 292
14.1 JDBC概述 292
14.1.1 ODBC技术 292
14.1.2 JDBC技术 293
14.1.3 JDBC构成 295
14.1.4 JDBC使用方法 296
14.2 JDBC基本编程概念 297
14.2.1 JDBC URL 297
14.2.2 加载驱动程序 298
14.2.3 创建数据库连接 299
14.2.4 DriverManager类 299
14.2.5 创建SQL语句对象 300
14.2.6 Statement接口 301
14.2.7 PreparedStatement接口 302
14.2.8 ResultSet接口 304
14.3 JDBC应用范例 305
14.3.1 创建新的ODBC数据资源 305
14.3.2 JDBC编程的基本步骤 307
14.3.3 范例程序代码 308
14.4 小结 311
习题 312
第15章 RMI编程技术 313
15.1 RMI编程概述 313
15.1.1 RMI编程思想 313
15.1.2 RMI分布式对象应用程序的核心功能 314
15.1.3 RMI体系结构 315
15.2 RMI类和接口 316
15.2.1 java.rmi.Remote接口 317
15.2.2 java.rmi.RemoteException类 317
15.2.3 java.rmi.server.RemoteObject类及其子类 318
15.2.4 java.rmi.registry.LocateRegistry类 318
15.2.5 java.rmi.Naming类 319
15.2.6 java.rmi.server.RemoteServer类 320
15.2.7 java.rmi.server.UnicastRemote Object类 321
15.2.8 java.rmi.RMISecurityManager类 322
15.3 RMI编译器(rmic) 322
15.4 RMI编程示例 323
15.4.1 定义和实现远程接口 323
15.4.2 编写RMI服务器程序 325
15.4.3 编写RMI客户端程序 326
15.4.4 安全策略文件 327
15.4.5 批处理文件 328
15.5 程序运行结果 329
15.6 在不同机器上运行RMI程序 330
15.6.1 rmiregistry 330
15.6.2 程序修改 330
15.6.3 运行 331
15.7 小结 331
习题 332
第16章 Java与CORBA 333
16.1 CORBA简介 333
16.2 CORBA体系结构 334
16.3 CORBA工作原理 335
16.3.1 ORB 335
16.3.2 IOR 336
16.3.3 CORBA协议栈 337
16.3.4 服务请求实现方式 338
16.4 Java与CORBA的互补性 339
16.5 使用Java开发简单的CORBA应用 340
16.5.1 定义IDL接口 340
16.5.2 使用idltojava转换接口文件 341
16.5.3 idltojava生成的Java文件 341
16.5.4 CORBA服务器 342
16.5.5 CORBA客户机 344
16.5.6 范例程序运行结果 346
16.5.7 在不同计算机上运行范例程序 347
16.6 小结 348
习题 348
第17章 JNI技术 349
17.1 概述 349
17.1.1 JNI定义 349
17.1.2 使用JNI 349
17.2 JNI编程过程 350
17.3 小结 355
习题 355
第18章 应用编程实例 356
18.1 Web服务器 356
18.1.1 HTTP协议 356
18.1.2 Web服务器程序代码 357
18.1.3 程序结构分析 362
18.1.4 显示Web页面 365
18.1.5 运行实例 365
18.2 分布式数据库操作 366
18.2.1 定义远程接口 367
18.2.2 实现远程接口 367
18.2.3 服务器程序 370
18.2.4 客户程序 371
18.2.5 安全策略文件 373
18.2.6 运行程序 374
18.3 声音播放 375
18.3.1 声音文件类型 375
18.3.2 Applet播放音频 376
18.3.3 Application播放音频 379
18.4 小结 379
习题 379
附录1 Java语言参考 380
附录2 Java语言编程规范 384
附录3 JDK工具 390
附录4 关于垃圾收集的一些话 392
附录5 相关网络资源 396
参考文献 397