第1章 Java语言概述 1
第1节 概述 1
1.1.1 Java的起源 1
1.1.2 Java的现状 2
1.1.3 Java语言的特点 2
1.1.4 Java的运行系统 5
1.1.5 Java虚拟机 6
第2节 简单的Java程序介绍 6
1.2.1 Java应用程序 7
1.2.2 对Java程序的初步认识 8
1.2.3 Applet 10
习题 13
第2章 数据类型、操作符和表达式 14
第1节 基本数据类型 14
2.1.1 基本数据类型 14
2.1.2 常量 15
2.1.3 变量的作用域 18
第2节 操作符和表达式 18
2.2.1 操作符的优先级 18
2.2.3 赋值操作符 20
2.2.2 算术操作符 20
2.2.4 类型转换 21
2.2.5 递增和递减操作符 23
2.2.6 条件操作符 23
2.2.7 位操作 25
第3节 String类 26
2.3.1 创建String类对象 26
2.3.2 得到有关String对象的信息 27
2.3.3 比较字符串 27
2.3.5 字符串的操作 28
2.3.4 字符串的抽取 28
第4节 数组 29
2.4.1 数组的创建与使用 29
2.4.2 数组的成员 31
第5节 Vector类 33
2.5.1 产生一个Vector 33
2.5.2 向Vector中增加一个对象 34
2.5.3 访问Vector中的对象 34
2.5.4 查找Vector中的对象 34
2.5.6 改变Vector的大小 35
2.5.5 从Vector中移走对象 35
习题 37
第3章 程序的流程控制 40
第1节 条件选择 40
3.1.1 if语句 40
3.1.2 if-else语句 41
3.1.3 switch语句 42
第2节 重复 44
3.2.1 for语句 44
3.2.3 do-while语句 45
3.2.2 while语句 45
第3节 跳转 46
3.3.1 break语句 46
3.3.2 continue语句 47
3.3.3 retum语句 47
习题 48
第4章 类、接口和包 50
第1节 面向对象程序设计的基本概念 50
4.1.1 对象(object) 50
4.1.2 类(class) 50
4.1.3 封装 51
4.1.4 类的继承 52
4.1.5 类的多态性 53
第2节 类的声明 53
4.2.1 类修饰符 53
4.2.2 类名 56
4.2.3 超类 56
第3节 域的声明 56
4.3.1 域修饰符 57
第4节 方法的声明 60
4.4.2 方法修饰符 61
4.4.1 方法的命名 61
4.4.3 向方法传递信息 64
4.4.4 方法的体 65
4.4.5 方法的继承、重载和隐藏 65
4.4.6 main方法 66
4.4.7 小结:修饰符的使用 67
第5节 类的构造器、对象与成员 68
4.5.1 类的构造器 68
4.5.4 对象的垃圾收集 70
4.5.2 类的实例与成员 70
4.5.3 实例成员和类成员的初始化 70
第6节 嵌套类 71
第7节 接口 73
4.7.1 接口的概念 73
4.7.2 声明接口 75
4.7.3 接口体 76
4.7.4 实现接口 76
4.7.5 小结:接口与abstract类的比较 76
4.8.2 声明包 77
第8节 包 77
4.8.1 概述 77
4.8.3 导入包中的类 78
4.8.4 使用无需导入的类 79
4.8.5 实例:创建一个简单的包 79
习题 82
第5章 编写Applet程序 85
第1节 概述 85
5.2.1 Applet生命周期的划分 86
第2节 Applet的生命周期 86
5.2.2 实例 87
第3节 使用Font类改变Applet的字体 89
5.3.1 Font类中常用的方法 89
5.3.2 创建自己的Font 91
第4节 在HTML中使用Applet 93
5.4.1 APPLET标记 93
5.4.2 在HTML中传递Applet使用的参数 95
第5节 Applet在安全方面的限制 98
习题 100
第6章 异常处理 101
第1节 概述 101
第2节 Java异常抛掷与捕捉 102
6.2.1 try-catch块 102
6.2.2 throw语句 103
6.2.3 实例 103
6.2.4 创建自己的异常类 104
第3节 异常的类型 105
6.3.1 概述 105
6.3.2 Exception类及其子类 105
6.3.3 Error类及其子类 106
习题 108
第7章 Java API基础 109
第1节 Java API综述 109
7.1.1 java.applet 109
7.1.2 java.awt 109
7.1.3 java.beans 111
7.1.4 java.io 111
7.1.5 java.lang 111
7.1.8 java.rmi 112
7.1.6 java.math 112
7.1.7 java.net 112
7.1.9 java.security 113
7.1.10 java.sql 113
7.1.11 java.text 114
7.1.12 java.util 114
7.1.13 javax.accessibility 114
7.1.14 javax.naming 114
7.1.18 javax.swing 115
7.1.17 javax.sound. sampled 115
7.1.16 javax.sound.midi 115
7.1.15 javax.rmi 115
7.1.19 javax.transaction 117
7.1.20 org.omg.CORBA 117
第2节 Object类 118
第3节 Class类 119
第4节 System类 123
7.4.1 System类的三个域 123
7.4.2 方法 123
7.4.3 实例:得到当前系统的属性 126
第5节 Runtime类 128
第6节 StringBuffer类 131
7.6.1 构造器 131
7.6.2 方法 131
第7节 StringTokenizer类 133
第8节 Enumeration接口 134
7.8.1 实例 134
第9节 BitSet类 136
7.9.1 构造器 136
7.9.2 方法 136
7.9.3 实例 137
7.10.1 构造器 139
7.10.2 方法 139
第10节 Stack类 139
7.10.3 实例 140
第11节 Dictionary类 140
7.11.1 在Dictionary中存储对象 141
7.11.2 从Dictionary中检索对象 141
7.11.3 从Dictionary中移走对象 141
7.12.2 创建散列表对象 142
7.12.3 充填数据 142
7.12.1 概述 142
第12节 Hashtable类 142
7.12.4 查询数据 143
7.12.5 其他常用的方法 143
7.12.6 实例:查询股票的收盘行情 143
第13节 Properties类 148
7.13.1 Properties的缺省值 148
7.13.2 构造器 148
7.13.3 方法 148
7.13.4 实例 149
第14节 Math类 150
第15节 Random类 152
7.15.1 构造器 152
7.15.2 方法 153
习题 154
第8章 流、文件及其输入输出 156
第1节 流和文件 156
8.1.1 流 156
8.1.2 文件 157
8.2.2 OutputStream类 158
第2节 基本的输入输出类 158
8.2.1 InputStream类 158
8.2.3 PrintStream类 159
8.2.4 文件的输入输出 160
8.2.5 File类 162
习题 170
第9章 线程 171
第1节 概述 171
9.1.1 线程基础 171
9.1.2 与线程有关的类 172
9.1.3 线程的状态 175
第2节 创建和启动线程 176
9.2.1 创建线程 177
第3节 调度线程 180
9.3.1 Timer类 180
9.3.2 调度线程的实例 181
第4节 线程的同步与死锁 182
9.4.1 线程的同步 182
9.4.2 线程的死锁 184
第5节 多线程的分组管理 186
习题 190
第10章 Java的安全体系结构 192
第1节 Java的安全体系结构 192
10.1.1 原始沙箱模型 192
10.1.2 JDK 1.2的沙箱模型 193
10.1.3 Java具体的安全措施 193
第2节 安全策略文件 195
10.2.1 安全策略的概念 195
10.2.2 Policy文件的语法格式与说明 195
10.2.4 实例 197
10.2.3 java.policy文件的使用 197
10.3.1 简介 199
10.3.2 编写安全管理器 199
第3节 安全管理器 199
10.3.3 SecurityManager类的方法 201
10.3.4 安装安全管理器 203
10.4.2 公共密钥加密技术 204
10.4.3 认证授权 204
10.4.1 对称密码系统 204
第4节 密码系统简介 204
第5节 编程实现数字签名系统 205
10.5.1 生成密钥对 205
10.5.2 生成数字签名 206
10.5.3 校验数字签名 209
习题 211
第11章 图形用户接口 212
第1节 概述 212
11.1.1 AWT简介 212
11.2.1 事件类 213
第2节 事件 213
11.1.2 update,paint和repaint方法 213
11.2.2 事件的起源 216
11.2.3 键盘 218
第3节 组件的创建与使用 226
11.3.1 简单的窗口小部件 226
11.3.2 文本组件 233
第4节 容器与布局管理 237
11.4.1 容器 237
11.4.2 使用布局管理器来组织接口 242
11.5.1 JFC的出现与技术构成 251
第5节 Swing编程技术 251
11.5.2 Swing组件与AWT组件的区别 252
11.5.3 Swing应用程序实例 253
11.5.4 编程步骤 254
11.5.5 Swing的布局管理 258
习题 261
第12章 网络编程 262
第1节 网络技术基础 262
12.2.1 URL的概念 263
第2节 URL 263
12.2.2 URL类 264
12.2.3 URLConnection类 265
12.2.4 实例:从Internet/Intranet下载HTML文件 267
第3节 InetAddress类 269
12.3.1 InetAddress类简介 269
12.3.2 获得域名的IP地址 270
第4节 TCP Sockets编程 270
12.4.1 TCP Sockets基础 270
12.4.2 SocketImpl类 272
12.4.3 Socket类 273
12.4.4 ServerSocket类 276
12.4.5 “客户机/服务器”通信协议的开发流程 277
12.4.6 实例 278
第5节 UDP Socket编程 282
12.5.1 UDP Socket基础 282
12.5.2 DatagramPacket类 284
12.5.3 MulticastSocket类 285
12.5.4 实例:基于UDP Socket的ping 287
12.6.1 RFC概述 289
第6节 RFC 289
12.6.2 利用WHOIS协议查询Internet域名 290
12.6.3 访问POP3邮件服务器 292
习题 297
第13章 国际化与本地化编程 298
第1节 概述 298
13.1.1 国际化的概念 298
13.1.2 本地化的概念 298
第2节 Locale类 299
13.1.4 国际化与本地化编程的基本步骤 299
13.1.3 Java对Internationalization的支持 299
13.2.1 构造器 300
13.2.2 方法:查询与设置 301
第3节 ResourceBundle类:显示字符串 302
13.3.1 ResourceBundle类 302
13.3.2 源程序:118NSample.java 303
第4节 数据的格式化输出 304
13.4.1 使用预定义格式的数字与货币 304
13.4.2 使用预定义格式的日期和时间 307
习题 312
第14章 JDBC编程技术 313
第1节 JDBC编程技术综述 313
14.1.1 JDBC的概念 313
14.1.2 JDBC的用途 314
14.1.3 JDBC-ODBC桥 315
14.1.4 JDBC URL 315
14.1.5 odbc子协议 316
14.1.6 事务 317
第2节 DriverManager类 317
第3节 Statement接口 318
第4节 PreparedStatement接口 320
第5节 ResultSet接口 321
第6节 JDBC编程实例:JDBCDemo.java 323
14.6.1 创建新的ODBC数据资源 323
14.6.2 ODBC编程的典型步骤 324
14.6.3 源程序:JDBCDemo.java 325
习题 329
附录A Java的关键字 330
附录B 利用UDP Sockets实现网络聊天室 332
参考文献 351