第1章 Java概述 1
1.1 Java产生的背景 1
1.2 Java语言的特点 2
1.2.1简单性 2
1.2.2面向对象 2
1.2.3平台无关性 2
1.2.4分布式 2
1.2.5安全性 2
1.2.6健壮性 3
1.2.7多线程 3
1.2.8解释性和高性能 3
1.3 Java 2 SDK版本 3
1.3.1 J2ME 3
1.3.2 J2SE 3
1.3.3 J2EE 3
1.4 Java开发工具 4
1.4.1 Applet浏览器appletviewer 4
1.4.2 Java编译器javac 4
1.4.3 Java解释器java 4
1.4.4 Java文档生成器javadoc 5
1.4.5 Java打包工具Jar 5
1.4.6 Java类分解器javap 5
1.5 Java虚拟机 6
1.5.1 Java虚拟机JVM 6
1.5.2 Java虚拟机工作原理 6
1.6上机实战——两个简单的Java程序HelloWorld 7
1.6.1 Java应用程序Application-HelloWorld 7
1.6.2 Java小应用程序——HelloWorld 9
1.7小结 10
第2章 Java编程基础 11
2.1注释规则 11
2.2标识符和关键字 12
2.2.1标识符 12
2.2.2关键字 13
2.3变量和常量 13
2.3.1变量 13
2.3.2常量 14
2.4基本数据类型 14
2.4.1整数类型 14
2.4.2浮点类型 15
2.4.3字符类型 15
2.4.4逻辑类型 16
2.5数据类型之间的转换 17
2.5.1自动类型转换 17
2.5.2强制类型转换 17
2.6 Java中的运算符 18
2.6.1算术运算符 18
2.6.2关系运算符 19
2.6.3逻辑运算符 19
2.6.4赋值运算符 20
2.6.5其他运算符 20
2.7运算符的优先级 22
2.8 Java语言的编码规范 23
2.8.1语法规范 23
2.8.2代码编写规范 23
2.9小结 24
第3章 程序控制语句 25
3.1条件语句 25
3.1.1 if语句 25
3.1.2 switch语句 27
3.2循环语句 29
3.2.1 for循环结构 29
3.2.2 while循环结构 30
3.2.3 do-while循环结构 31
3.3关键字break和continue 32
3.3.1 break语句 32
3.3.2 continue语句 33
3.4小结 34
第4章 数组 35
4.1一维数组 35
4.1.1一维数组的定义和创建 35
4.1.2数组元素的使用 36
4.1.3数组的初始化 36
4.1.4一维数组的使用 37
4.1.5数组元素的缺省值 37
4.2二维数组 38
4.2.1二维数组定义和创建 39
4.2.2二维数组初始化 39
4.2.3二维数组的使用 40
4.3数组的操作 41
4.3.1数组的长度 41
4.3.2数组的复制 42
4.4数组的排序 43
4.5小结 45
第5章 字符串处理 46
5.1字符串类(String) 46
5.1.1常用构造函数 46
5.1.2字符串的连接 48
5.1.3获取字符串的长度 48
5.1.4获取字符串某位置的字符 49
5.1.5字符串的比较 49
5.1.6字符串的查找与截取 51
5.1.7字符串大小写转换 52
5.1.8字符串内容的替换 53
5.1.9分割字符串 54
5.1.10字符串的其他操作 55
5.1.11格式化字符串 57
5.2字符串数组(String[]) 60
5.2.1字符串数组的构造函数 60
5.2.2字符串数组的属性及常用方法 61
5.3字符串缓存类(StringBuffer) 61
5.3.1常用构造函数 62
5.3.2字符串缓存与字符串的转化 62
5.3.3字符串缓存的扩充 63
5.3.4字符串缓存的插入 63
5.4字符类(Character) 65
5.4.1常用构造函数 65
5.4.2字符的比较 65
5.4.3取字符对象的值 66
5.5字符串标记类(StringTokenizer) 66
5.5.1常用构造函数 66
5.5.2常用方法 67
5.6小结 68
第6章 面向对象程序设计 69
6.1面向对象的基本概念 69
6.1.1面向过程与和面向对象的程序设计 69
6.1.2对象和封装 69
6.1.3类和实例 70
6.2类 71
6.2.1类的定义 71
6.2.2成员变量和局部变量 72
6.2.3成员方法 73
6.2.4构造方法 75
6.2.5 main方法 76
6.2.6类对象的创建、使用和清除 76
6.2.7方法中参数的传递 79
6.3包 82
6.3.1包的作用 82
6.3.2包的定义 82
6.3.3运行包中的类 82
6.3.4引入包中的类 83
6.4类中变量和方法的访问权限 84
6.4.1公有类型变量和方法 84
6.4.2受保护类型变量和方法 85
6.4.3私有类型变量和方法 86
6.5类的继承 87
6.5.1继承的概念 87
6.5.2继承的实现——创建子类 88
6.5.3继承数据成员和方法 88
6.5.4覆盖 90
6.5.5继承中要注意的问题 92
6.6类的多态性 92
6.7抽象类 94
6.7.1理解抽象类 94
6.7.2抽象类的定义 94
6.7.3抽象类的应用 94
6.8接口 96
6.8.1接口的定义 96
6.8.2接口的使用 97
6.8.3接口的继承 98
6.9内部类 99
6.9.1匿名类(anonymous class) 99
6.9.2静态类(static class) 100
6.9.3成员类(member class) 100
6.9.4局部类(local class) 101
6.10和类相关的其他关键字 101
6.10.1 final修饰符 102
6.10.2 static修饰符 103
6.10.3 this关键字 105
6.10.4 super关键字 105
6.11小结 106
第7章 Java常用类的使用 107
7.1数学计算(Math)类 107
7.1.1 Math的数学常量 107
7.1.2 Math的常用方法 108
7.2日期(Date)类型 110
7.2.1 Date的构造函数 111
7.2.2 Date的常用方法 112
7.2.3 java.sql.Date与java.sql.Time 115
7.3计时器(Timer)类 116
7.3.1 Timer的构造函数 116
7.3.2 Timer的常用方法 116
7.3.3用TimerTask描述一个任务 117
7.3.4一个简单的Timer实例 117
7.4属性(Properties)类 118
7.4.1 Properties类的构造函数 119
7.4.2 Properties的常用方法 119
7.4.3使用Properties配置发送电子邮件 119
7.4.4 Properties文件的读写 122
7.4.5 Properties资源的国际化(Internationalize) 127
7.5集合工具类(Collections) 130
7.5.1向量表(ArrayList) 130
7.5.2游标(Iterator) 132
7.5.3向量(Vector) 133
7.5.4哈希集合(HashSet) 134
7.5.5哈希映射(HashMap) 136
7.5.6哈希表(Hashtable) 138
7.6小结 139
第8章 异常的处理 140
8.1错误跟异常的区别 140
8.2异常的分类 141
8.3捕捉一个异常 142
8.4使用fially子句 144
8.5抛出一个异常 146
8.6自定义异常类型 147
8.7小结 151
第9章 I/0及文件操作 152
9.1文件类(File) 152
9.1.1常用构造函数 152
9.1.2常用方法 152
9.1.3列出文件信息 153
9.1.4使用FilenameFilter 155
9.1.5查找文件实例 157
9.1.6文件的创建 160
9.1.7文件的删除和更名 162
9.2流(Stream) 164
9.2.1输入流与输出流 164
9.2.2标准输入输出流 165
9.2.3流的常用方法 166
9.2.4读取文件内容的操作 167
9.2.5将内容保存到文件的操作 170
9.2.6 I/O读写时可能遇到的异常 173
9.2.7文件的锁定操作 174
9.3随机访问文件类(RandomAccessFile) 176
9.3.1常用构造函数 176
9.3.2常用方法 176
9.3.3随机访问文件实例 177
9.4可序列化接口(Serializable) 182
9.5文件的压缩 184
9.5.1文件压缩实例 185
9.5.2文件解压缩实例 187
9.6小结 188
第10章 Java高级特性 189
10.1自动装箱与拆箱 189
10.1.1适用范围 189
10.1.2自动装箱与拆箱示例 189
10.1.3注意事项 191
10.2新的for/in循环形式 192
10.2.1遍历数组 192
10.2.2遍历集合 193
10.2.3 for/in循环示例 194
10.3可变长参数方法 194
10.3.1定义可变长参数方法 195
10.3.2可变参数方法示例 195
10.4协变式返回类型 196
10.4.1概述 196
10.4.2一个实例 196
10.5静态导入 197
10.5.1概述 197
10.5.2一个实例 197
10.6范型 198
10.6.1概述 198
10.6.2使用多个范型 199
10.6.3范型通配符 200
10.6.4范型化类与方法 201
10.7枚举类型 203
10.7.1概述 203
10.7.2枚举类型的用处 204
10.7.3扩展枚举类型 205
10.8注解 207
10.8.1概述 207
10.8.2 Java标准注解 208
10.8.3自定义注解 209
10.9小结 210
第11章 开发工具Eclipse 211
11.1 Eclipse概述 211
11.1.1 Eclipse平台体系结构 211
11.1.2 Eclipse的下载和安装 212
11.1.3 Eclipse不同版本的选择 213
11.2认识工作台(Workbench) 213
11.2.1什么是工作台 213
11.2.2认识视图(View) 214
11.2.3认识编辑器(Editor) 215
11.2.4认识透视图(Perspective) 216
11.2.5视图、编辑器与透视图的关系 217
11.3开发Java程序 217
11.3.1查看JDK版本 217
11.3.2创建Java项目 218
11.3.3创建Java包 219
11.3.4创建Java类 219
11.4编译和运行Java程序 220
11.4.1编译后文件存放目录 221
11.4.2导入项目使用的包 222
11.4.3设置编译方式 223
11.4.4编译程序 224
11.4.5运行程序 225
11.5调试Java程序 226
11.5.1 理解断点(Breakpoint) 226
11.5.2调式程序 227
11.5.3调试透视图 228
11.5.4断点后的处理 229
11.5.5查看调试中的变量值 229
11.5.6条件断点 230
11.6常用的代码编辑功能 231
11.6.1代码提示 231
11.6.2错误更正 232
11.6.3格式化代码 232
11.6.4查看代码结构 232
11.6.5覆盖父类方法 233
11.6.6代码重构 234
11.7设置首选项 235
11.8小结 236
第12章 单元测试框架JUnit 237
12.1 JUnit概述 237
12.1.1什么是JUnit 237
12.1.2为什么要进行JUnit测试 237
12.1.3 JUnit的术语介绍 238
12.1.4 JUnit与Eclipse的集成 238
12.2编写第一个JUnit测试 238
12.2.1编写一个Java类 239
12.2.2创建测试类 239
12.2.3运行JUnit 240
12.3 JUnit中常用的接口和类 241
12.3.1 Test接口 241
12.3.2 TestCase抽象类 242
12.3.3 Assert断言类 242
12.3.4 TestSuite测试包类 242
12.3.5 TestResult结果类 243
12.3.6其他类与接口 243
12.4进行JUnit测试的基本步骤 243
12.4.1编写要测试的类 243
12.4.2编写测试用例 245
12.4.3运行JUnit测试用例 246
12.5小结 246
第13章 使用Ant进行Java开发 247
13.1 Ant概述 247
13.1.1什么是Ant 247
13.1.2 Ant的下载 247
13.1.3 Ant的安装与配置 248
13.1.4第一个Ant构建文件 249
13.1.5运行Ant 250
13.2编写build.xml文件 251
13.2.1 project元素 251
13.2.2 target元素 252
13.2.3 task元素 253
13.2.4 property元素 253
13.3常用Ant任务 254
13.3.1输出信息 254
13.3.2编译Java源文件 254
13.3.3打包任务 255
13.3.4运行Java程序 255
13.3.5删除文件夹或文件 255
13.3.6创建文件夹 255
13.3.7复制文件 255
13.3.8设置文件集合 256
13.4编译、打包和运行Java程序 256
13.5小结 258
第14章 JDeveloper开发 259
14.1 Developer概述 259
14.1.1 JDeveloper界面一览 259
14.1.2 JDeveloper的功能 260
14.2 JDeveloper的下载和安装 260
14.2.1 JDeveloper的下载 260
14.2.2 JDeveloper的安装 260
14.3编写第一个Java程序 261
14.3.1新建应用程序(Application) 261
14.3.2新建项目工程(Project) 262
14.3.3新建Java类 263
14.3.4运行Java程序 264
14.4 JDeveloper的自定义设置 264
14.4.1项目属性设置 264
14.4.2导入项目使用的类库 265
14.4.3首选项设置 266
14.5常用的代码编辑功能 266
14.5.1添加注释 266
14.5.2自定义格式化代码 267
14.5.3自动生成getter和setter代码 268
14.5.4代码的重构 269
14.5.5代码的展开和折叠 270
14.5.6代码比较 270
14.5.7子类覆盖父类的方法 271
14.5.8代码模板 272
14.6代码错误提示 273
14.6.1如何定位错误 273
14.6.2自动修正错误 274
14.7文件查找 274
14.7.1文件内部查找 274
14.7.2项目内查找 275
14.8使用快捷键 275
14.8.1查看快捷键 275
14.8.2编辑快捷键 276
14.9程序调试 276
14.9.1设置断点 276
14.9.2跟踪调试程序 276
14.10小结 277
第15章 XML开发概述 278
15.1 XML概述 278
15.1.1 XML的特点 278
15.1.2 XML的用处 278
15.1.3 XML的标签 279
15.2 XML语法 279
15.2.1 XML文档的例子 279
15.2.2 XML标签必须结束 280
15.2.3 XML标签大小写敏感 280
15.2.4 XML元素必须合理嵌套 280
15.2.5 XML有且仅有一个根元素 280
15.2.6 XML属性必须使用引号 281
15.2.7 XML中的空白将被保留 281
15.2.8 XML中的注释 281
15.3 XML元素 281
15.3.1元素命名规则 281
15.3.2元素间的关系 282
15.4 XML属性 282
15.4.1属性命名规则 282
15.4.2属性的一些缺点 282
15.5 XML解析 283
15.5.1 DOM解析 283
15.5.2 SAX解析 289
15.6使用JDOM简化XML解析 293
15.6.1 JDOM简介 293
15.6.2免费获取JDOM 293
15.6.3 JDOM的XML解析 294
15.7小结 297
第16章 Java网络技术 298
16.1网络相关知识 298
16.1.1 IP地址 298
16.1.2端口 298
16.1.3客户机和服务器 299
16.1.4面向连接和非连接 299
16.1.5 TCP/IP协议 299
16.2 URL 300
16.2.1 URL构成 300
16.2.2 URL类 300
16.3 InetAddress类 303
16.4基于TCP协议的Socket通信 304
16.4.1理解Socket 304
16.4.2 Socket和ServerSocket 304
16.4.3 Java网络通信模型 306
16.4.4一个基于TCP的C/S程序举例 306
16.5基于UDP协议的Socket通信 308
16.5.1 DatagramSocket和DatagramPacket类 308
16.5.2基于UDP的C/S程序举例 309
16.6支持多客户连接的Socket通信方式 311
16.6.1支持多客户连接的Socket通信模型 311
16.6.2创建服务器线程 312
16.6.3服务器主程序 313
16.6.4客户机程序 314
16.7小结 315
第17章 线程 316
17.1线程(Thread) 316
17.1.1线程简介 316
17.1.2线程状态 316
17.2创建线程 316
17.2.1使用Thread类创建线程 317
17.2.2使用Runnable创建线程 318
17.3线程的属性 319
17.3.1优先级(Priority) 319
17.3.2守护线程(Daemon Thread) 321
17.4线程的操作 323
17.4.1让步(yield) 323
17.4.2沉睡(sleep)与唤醒(interrupt) 324
17.4.3停止(stop) 326
17.4.4连接(join) 327
17.5线程间的同步 328
17.5.1线程并发的例子 328
17.5.2线程间的同步 331
17.5.3等待(wait)与通报(notify) 332
17.6 线程死锁(deadlock) 335
17.6.1一个死锁的例子 335
17.6.2死锁的解决方法 337
17.7小结 339
第18章 图形编程 340
18.1 AWT概述 340
18.1.1小应用程序(Applet) 340
18.1.2应用程序(Frame) 342
18.2 Swing概述 343
18.2.1什么是Swing 343
18.2.2一个简单的Swing 344
18.3 JApplet 345
18.3.1 JApplet的常用方法 345
18.3.2 JApplet的一个实例 345
18.3.3在网页里运行JApplet 347
18.3.4在Eclipse中运行JApplet 349
18.4应用程序(Jframe) 350
18.4.1 JFrame的构造函数 350
18.4.2 JFrame的常用方法 350
18.4.3 JFrame实例 351
18.5常用组件(JComponent) 352
18.5.1常用组件的共性操作 352
18.5.2按钮(JButton) 353
18.5.3输入框(JTextField)与密码输入框(JPasswordField) 355
18.5.4文本域(JTextArea) 359
18.5.5标签(JLabel) 363
18.5.6单选按钮(JRadioButton)与按钮组(ButtonGroup) 366
18.5.7多选按钮(JCheckBox) 368
18.5.8下拉列表(JComboBox)与列表(JList) 371
18.5.9菜单(JMenu) 374
18.5.10右键弹出菜单(JPopupMenu) 378
18.6布局管理器(LayoutManager) 381
18.6.1不使用布局 381
18.6.2流式布局(FlowLayout) 382
18.6.3边框布局(BorderLayout) 383
18.6.4网格布局(GridLayout) 384
18.7事件处理(Event) 385
18.7.1事件(Event)与监听器(Listener) 386
18.7.2 ActionEvent与ActionListener 386
18.7.3 MouseEvent与MouseListener 388
18.7.4 KeyEvent与KeyListener 390
18.7.5 WindowEvent与WindowListener 391
18.8 Swing高级组件 393
18.8.1简单对话框(JOptionPane) 393
18.8.2文件选择框(JFileChooser) 394
18.8.3表格(JTable) 396
18.8.4树(JTree) 398
18.9小结 401
附录 JDK命令详解 402