1 概述 1
1.1 什么是Java语言 1
1.1.1 Java语言的特点 1
目录 1
1.1.2 Java的三层架构 3
1.1.3 Java语言的目标 3
1.1.4 Java虚拟机 4
1.1.5 垃圾收集 5
1.1.6 代码安全 5
1.2 一个基本的Java应用程序 8
1.2.1 开发环境的安装 8
1.2.2 Java应用程序 9
1.3.1 编译 11
1.3.2 运行 11
1.3 程序的编译和运行 11
1.4 常见错误 12
1.4.1 编译时错误 12
1.4.2 运行时错误 13
1.5 使用Java核心API文档 14
习题 17
2 标识符和数据类型 18
2.1 Java的基本语法单位 18
2.1.1 空白、注释及语句 18
2.1.2 关键字 20
2.1.3 标识符 20
2.2 Java编码体例 21
2.3 Java的基本数据类型 22
2.3.1 基本数据类型 22
2.3.2 类型转换 24
2.3.3 变量、说明和赋值 25
2.4.1 概述 26
2.4 复合数据类型 26
2.4.2 Java的复合数据类型 27
2.5 类和对象的初步介绍 27
2.5.1 Java中的面向对象技术 27
2.5.2 Java中的类定义 29
2.5.3 Java中与OOP有关的关键字 30
2.5.4 类定义示例 33
2.5.5 创建一个对象 36
2.5.6 引用变量的赋值 38
2.5.7 自动初始化和null引用值 39
2.5.8 术语概述 39
习题 40
3 表达式和流程控制语句 42
3.1 表达式 42
3.1.1 操作数 42
3.1.2 运算符 46
3.1.3 表达式的提升和转换 48
3.1.4 数学函数 49
3.2 流控制 50
3.2.1 表达式语句 50
3.2.2 块 50
3.2.3 分支语句 51
3.2.4 循环语句 56
3.2.5 break与continue语句 59
3.2.6 注释语句 61
习题 62
4 数组、向量和字符串 65
4.1 数组 65
4.1.1 数组说明 65
4.1.2 创建数组 66
4.1.3 数组边界 69
4.1.4 数组元素的引用 69
4.1.5 多维数组 70
4.1.6 数组复制 75
4.2 Vector类 76
4.2.1 概述 77
4.2.2 Vector类的构造方法 77
4.2.3 Vector类对象的操作 78
4.2.4 Vector类中的其他方法 79
4.2.5 Vector类的使用举例 80
4.3 字符串类型 82
4.3.1 字符串简述 82
4.3.2 字符串说明及初始化 82
4.3.3 字符串处理 82
4.3.4 几个特殊处理 84
习题 86
5.1.1 概述 88
5.1 抽象数据类型 88
5 进一步讨论对象和类 88
5.1.2 定义方法 89
5.1.3 按值传送 92
5.1.4 重载方法名 94
5.2 对象的构造和初始化 95
5.2.1 显式成员初始化 95
5.2.2 构造方法 95
5.2.3 默认的构造方法 97
5.2.4 构造方法重载 97
5.2.5 finalize方法 98
5.3 this引用 99
5.4 子类 99
5.4.1 “is a”关系 100
5.4.2 extends关键字 101
5.4.3 单重继承 102
5.4.5 方法自变量和异类集合 104
5.4.4 多态性 104
5.4.6 instanceof运算符 105
5.4.7 转换对象 106
5.5 方法重写 107
5.5.1 方法重写示例 107
5.5.2 应用重写的规则 111
5.5.3 父类构造方法调用 113
5.6 Java包 114
5.6.1 Java包的概念 114
5.6.2 import语句 115
5.6.3 目录层次关系及classpath环境变量 116
5.6.4 访问权限与数据隐藏 118
5.6.5 封装 119
5.7 类成员 120
5.7.1 类变量 120
5.7.2 类方法 122
5.8 关键字final 124
5.8.1 终极类 124
5.8.2 终极方法 125
5.8.3 终极变量 125
5.9 抽象类 127
5.10 接口 129
5.10.1 接口的定义 129
5.10.2 接口的实现 130
5.11 内部类 133
5.11.1 内部类的概念 133
5.11.2 匿名类 135
5.11.3 内部类的工作方式 136
5.12 过时信息 137
习题 139
6 Java语言中的异常 142
6.1 异常 142
6.3 异常处理 145
6.2 异常示例 145
6.3.1 try,catch和finally语句 146
6.3.2 再讨论前面的示例 146
6.3.3 公共异常 147
6.4 异常分类 148
6.5 抛出 149
6.6 创建自己的异常 149
习题 151
7 Java的图形用户界面设计 152
7.1 AWT与Swing 152
7.2 容器 153
7.2.1 顶层容器 153
7.2.2 使用JFrame创建一个应用程序 154
7.2.3 内容窗格 154
7.2.4 面板 156
7.3.1 一个简单的例子 157
7.3 布局 157
7.3.2 FlowLayout布局管理器 159
7.3.3 BorderLayout布局管理器 161
7.3.4 GridLayout布局管理器 162
7.3.5 CardLayout布局管理器 164
7.3.6 BoxLayout布局管理器 166
7.3.7 其他布局管理器 171
7.4 事件处理 172
7.4.1 事件处理模型 172
7.4.2 事件的种类 174
7.4.3 一个较复杂的例子 176
7.4.4 多监听程序 178
7.4.5 事件适配器 178
习题 180
8.1 按钮 182
8.1.1 普通按钮 182
8 Swing组件 182
8.1.2 切换按钮、复选按钮及单选按钮 187
8.2 标签 192
8.3 组合框 195
8.4 列表 198
8.5 文本组件 203
8.5.1 文本域 204
8.5.2 文本区 208
8.6 菜单组件 211
8.6.1 菜单栏 211
8.6.2 菜单 212
8.6.3 菜单项 212
8.6.4 复选菜单项和单选菜单项 214
8.6.5 弹出式菜单 217
8.7 对话框、标准对话框与文件对话框 220
8.7.1 对话框 220
8.7.2 标准对话框 221
8.7.3 文件对话框 226
8.8 控制组件外观 229
8.8.1 颜色 229
8.8.2 字体 229
8.8.3 绘图 231
习题 234
9 Java Applet 237
9.1 编写Applet 237
9.2 Applet的方法和Applet的生命周期 239
9.3 Applet的运行 240
9.3.1 用于显示Applet的方法 240
9.3.2 appletviewer 242
9.3.3 HTML与〈applet〉标记 243
9.3.4 Applet参数的读取 244
9.3.5 Applet与URL 246
9.4.1 在Applet中显示图像 247
9.4 在Applet中的多媒体处理 247
9.4.2 在Applet中播放声音 248
9.5 Applet的事件处理 250
9.6 Applet与普通应用程序的结合 251
习题 253
10 Java数据流 254
10.1 数据流的基本概念 254
10.1.1 输入数据流 255
10.1.2 输出数据流 256
10.2 基本字节数据流类 257
10.2.1 文件数据流 257
10.2.2 过滤流 259
10.2.3 管道数据流 261
10.2.4 对象流 262
10.2.5 可持续性 263
10.3.1 读者和写者 266
10.3 基本字符流 266
10.3.2 缓冲区读者和缓冲区写者 268
10.4 文件的处理 272
10.4.1 File类 272
10.4.2 随机访问文件 274
习题 275
11 线程 277
11.1 线程和多线程 277
11.1.1 线程的概念 277
11.1.2 线程的结构 278
11.2 线程的状态 279
11.3 创建线程 280
11.3.1 创建线程的方法一——继承Thread类 281
11.3.2 创建线程的方法二——实现Runnable接口 283
11.3.3 关于两种创建线程方法的讨论 285
11.5 线程的调度 286
11.4 线程的启动 286
11.6 线程的基本控制 288
11.6.1 结束线程 288
11.6.2 检查线程 289
11.6.3 挂起线程 289
11.7 同步问题 291
11.7.1 线程间的通信 291
11.7.2 线程间的资源互斥共享 293
11.7.3 对象的锁定标志 295
11.7.4 同步方法 296
11.8 死锁 297
11.9 线程交互——wait()和notify() 299
11.9.1 问题的提出 299
11.9.2 解决方法 300
11.9.3 守护线程 301
11.9.4 综合应用 302
习题 307
12 Java的网络功能 309
12.1 概述 309
12.2 使用InetAddress 311
12.3 统一资源定位器 312
12.3.1 URL的概念 312
12.3.2 URL的构造方法 313
12.3.3 与URL相关的异常 314
12.3.4 获取URL对象属性 314
12.3.5 读入URL数据 315
12.4 Socket接口 318
12.4.1 Socket的基本概念 319
12.4.2 Socket通信的基本步骤 321
12.4.3 Socket通信的程序设计 321
12.5 Java编程综合实例 323
习题 331
参考文献 332