11.1什么是Java语言1
1.1.1Java语言的特点1
1.1.2Java的三层架构3
1.1.3Java语言的目标3
1.1.4Java虚拟机3
1.1.5垃圾收集4
1.1.6代码安全5
1.2一个基本的Java应用程序6
1.3程序的编译和运行8
1.3.1编译8
1.3.2运行9
1.4常见错误9
1.4.1编译时错误9
1.4.2运行时错误10
1.5使用Java核心API文档11
习题13
标识符、关键字和数据类型
142.1Java的基本语法单位14
2.1.1空白、注释及语句14
2.1.2关键字15
2.1.3标识符16
2.2Java编码体例16
2.3Java的基本数据类型17
2.3.1基本数据类型17
2.3.2类型转换20
2.3.3变量、说明和赋值20
2.4复合数据类型21
2.4.1概述21
2.4.2复合数据类型21
2.5类和对象的初步介绍22
2.5.1Java的面向对象技术22
2.5.2Java的类定义23
2.5.3与OOP有关的关键字24
2.5.4类定义示例26
2.5.5创建一个对象29
2.5.6引用变量的赋值30
2.5.7默认初始化和null引用值31
2.5.8术语概述31
习题32
表达式和流控制
333.1表达式33
3.1.1操作数33
3.1.2运算符36
3.1.3表达式的提升和转换38
3.2流控制39
3.2.1表达式语句40
3.2.2块40
3.2.3分支语句40
3.2.4循环语句44
3.2.5特殊的流控制语句46
习题48
数组和字符串
504.1数组50
4.1.1数组说明50
4.1.2创建数组50
4.1.3数组边界52
4.1.4数组初始化52
4.1.5多维数组53
4.1.6数组拷贝55
4.2字符串类型56
4.2.1字符串概述56
4.2.2字符串说明及初始化56
4.2.3字符串处理57
4.2.4几个特殊处理58
习题60
对象和类的进一步介绍
625.1抽象数据类型62
5.1.1抽象数据类型概述62
5.1.2定义方法63
5.1.3按值传送66
5.1.4this引用68
5.1.5数据隐藏68
5.1.6封装70
5.2重载方法名70
5.3对象的构造和初始化71
5.3.1显式成员初始化71
5.3.2构造方法71
5.3.3默认构造方法72
5.3.4finalize方法72
5.4子类73
5.4.1“is a”关系73
5.4.2extends关键字73
5.4.3单重继承74
5.4.4多态性74
5.4.5方法的参量和异类集合75
5.4.6instanceof运算符75
5.4.7转换对象76
5.5覆盖方法77
5.6Java包80
5.6.1Java包的概念80
5.6.2import语句81
5.6.3目录层次关系及CLASSPATH环境变量82
习题82
Java语言中的异常
846.1异常84
6.2异常示例84
6.3异常处理85
6.3.1try,catch和finally语句85
6.3.2再讨论前面的示例86
6.3.3公共异常87
6.4异常分类88
6.5抛出88
6.6创建自己的异常89
习题90
Java的图形用户界面设计
927.1创建图形用户界面93
7.1.1容器和组件93
7.1.2组件的定位93
7.1.3组件的大小93
7.2框架93
7.2.1创建一个简单的框架93
7.2.2运行程序94
7.3面板94
7.4布局96
7.5一个简单的例子96
7.6布局管理器98
7.6.1FlowLayout布局管理器98
7.6.2BorderLayout布局管理器99
7.6.3GridLayout布局管理器101
7.6.4CardLayout布局管理器103
7.6.5其他布局管理器105
7.7容器105
7.7.1框架105
7.7.2面板105
7.7.3创建面板和构造复杂布局106
习题107
AWT事件模型
1088.1JDK1.0和JDK1.1事件模型108
8.1.1JDK1.0的层次模型108
8.1.2JDK1.1的委托模型112
8.2Java GUI工作情况113
8.2.1事件的种类113
8.2.2一个较复杂的例子114
8.2.3多监听程序117
8.3事件适配器117
习题118
AWT组件库
1209.1按钮120
9.2复选框122
9.3复选框组——单选按钮124
9.4选择框126
9.5画布128
9.6标签130
9.7文本域131
9.8文本区132
9.9文本组件134
9.10列表134
9.11框架136
9.12面板137
9.13对话框137
9.14文件对话框139
9.15菜单组件141
9.15.1菜单栏142
9.15.2菜单142
9.15.3菜单项143
9.15.4带复选项的菜单项144
9.15.5弹出式菜单147
9.16控制组件外观149
9.16.1颜色149
9.16.2字体149
9.17打印151
习题151
Java Applet
15410.1编写Applet155
10.2Applet的方法和Applet的生命周期156
10.3Applet的显示与刷新157
10.4appletviewer158
10.5HTML与〈applet〉标记159
10.6Applet参数的读取160
10.7Applet与URL161
10.8在Applet中显示图像162
10.9在Applet中播放声音163
10.10Applet的事件处理165
10.11Applet与普通应用程序的结合166
习题168
Java语言的深入理解
16911.1方法覆盖169
11.1.1方法覆盖的概念169
11.1.2应用覆盖的规则170
11.2构造方法覆盖171
11.3父类构造方法调用172
11.4类成员173
11.4.1类变量173
11.4.2类方法175
11.5关键字final176
11.5.1终极类176
11.5.2终极方法177
11.5.3终极变量177
11.6抽象类179
11.7接口180
11.7.1接口的定义181
11.7.2接口的实现181
11.8过时信息182
11.9内部类185
11.9.1内部类的概念185
11.9.2匿名类186
11.9.3内部类的工作方式187
11.10Vector类188
11.10.1概述188
11.10.2Vector类的构造方法188
11.10.3Vector类中的变量189
11.10.4Vector类中的方法189
11.10.5Vector类的使用举例189
习题191
Java数据流
19212.1数据流的基本概念192
12.1.1输入数据流192
12.1.2输出数据流193
12.2基本数据流类194
12.2.1文件数据流194
12.2.2缓冲区数据流194
12.2.3数据数据流195
12.2.4管道数据流196
12.2.5对象流197
12.3其他相关类198
12.3.1URL输入数据流198
12.3.2读者和写者199
12.3.3缓冲区读者和缓冲区写者199
12.4文件的处理200
12.4.1File类200
12.4.2随机访问文件202
12.5可持续性203
12.5.1持续化的概念203
12.5.2对象结构表203
习题204
线程
20513.1线程和多线程205
13.1.1线程的概念205
13.1.2线程的结构206
13.2创建线程206
13.2.1创建线程的方法一——继承Thread类206
13.2.2创建线程的方法二——实现
Runnable接口 206
13.2.3关于两种创建线程方法的讨论208
13.3线程的启动208
13.4线程的调度208
13.5线程的基本控制210
13.5.1结束线程210
13.5.2检查线程211
13.5.3挂起线程211
13.6同步问题212
13.6.1问题的提出212
13.6.2对象的锁定标志214
13.6.3同步方法215
13.7死锁216
13.8线程交互——wait()和notify()218
13.8.1问题的提出218
13.8.2解决方法218
13.9综合应用实例220
习题224
Java的网络功能
22614.1概述226
14.2URL——统一资源定位器227
14.2.1URL的概念227
14.2.2URL的构造方法227
14.2.3与URL相关的异常228
14.2.4获取URL对象属性228
14.2.5读入URL数据229
14.3socket接口231
14.3.1socket的基本概念231
14.3.2socket通信的基本步骤232
14.3.3socket通信的程序设计232
14.4Java编程综合实例234
习题243
附录AGridBagLayout布局管理器244
A.1概述244
A.2GridBagLayout的功能244
A.3GridBagConstraints的使用245
A.4GridBagConstraints的实例变量245
A.5GridBagConstraints应用实例246
附录B本机方法的使用251
B.1定义本机方法251
B.2调用本机方法252
B.3javah工具252
B.4本机方法的C函数代码252
B.5集成254
B.6向本机方法传递信息254
B.7访问对象数据成员255
B.8访问字符串256
B.9本机方法应用小结258
参考文献259