第1章 Java语言概述 1
1.1 Java的发展历程 1
1.2 Java语言的基本特点 1
1.3 Java虚拟机 3
1.4 Java开发工具箱 3
1.4.1下载与安装Java开发工具包(JDK) 4
1.4.2JDK目录 6
1.4.3设置环境变量 7
1.5学会使用API 8
1.6常见IDE介绍 10
1.6.1 JCreator软件 10
1.6.2 JBuilder软件 11
1.6.3 Eclipse软件 11
1.7第一个Java程序 12
1.7.1开发源代码 12
1.7.2编译运行 13
小结 13
习题 14
上机指导 14
实验:运算并显示某一算式的运算结果 14
第2章 Java程序设计基础 15
2.1 Java中的关键字与标识符的命名规则 15
2.2 Java的基本数据类型 16
2.2.1 boolean类型 18
2.2.2 byte、short、int和long类型 18
2.2.3 float和double类型 20
2.3封装类型 21
2.3.1封装类型概述 21
2.3.2创建封装类对象 21
2.4 Java操作符 23
2.4.1算术运算符 23
2.4.2自增自减运算 27
2.4.3关系运算 29
2.4.4逻辑运算 30
2.4.5三元运算符 32
2.4.6位运算 34
2.4.7移位运算 35
2.4.8赋值运算 35
2.4.9括号及运算符间的优先级关系 37
2.5 Java中变量的赋值与类型转换 37
2.5.1基本类型转换 38
2.5.2强制类型转换 38
2.6 Java中的控制语句 39
2.6.1分支语句 39
2.6.2循环语句 42
2.6.3流程跳转语句 45
2.7断言 46
2.7.1断言的概念 47
2.7.2如何启用/关闭断言 48
2.7.3防止滥用断言 50
小结 51
习题 51
上机指导 51
实验一:不同类型数据间的运算 51
实验二:多重for循环绘制图形 52
实验三:使用switch语句实现条件分支 53
第3章 Java中的对象与类 54
3.1面向对象概述 54
3.2类的定义与对象的创建 55
3.3包的使用 55
3.3.1声明创建包 56
3.3.2引入包内的资源 58
3.4类的成员变量和方法 60
3.4.1访问修饰符 61
3.4.2成员变量 61
3.4.3成员变量的初始值 62
3.4.4方法 66
3.4.5构造方法 67
3.4.6参数的传递 68
3.5抽象类与接口 69
3.5.1抽象类与抽象方法 69
3.5.2接口 72
3.6 final关键字 74
3.7类的继承 75
3.7.1如何定义子类 76
3.7.2方法的覆盖 78
3.7.3 this与super关键字 80
3.7.4继承的层次结构 81
3.8 static关键字 82
小结 86
习题 87
上机指导 88
实验一:对象引用型成员变量的使用 88
实验二:含有返回值的方法的使用 89
实验三:使用对象模拟“商店客户折扣卡”功能 90
第4章 集合 93
4.1列表(List) 94
4.1.1列表接口 95
4.1.2列表的数组实现 96
4.1.3向量 98
4.1.4列表的链接实现 99
4.1.5将数组转换为列表 100
4.2集合(Set) 101
4.2.1 Set接口及含义 101
4.2.2 HashSet类的使用 102
4.2.3 LinkedHashSet类的使用 103
4.2.4 SortedSet接口与TreeSet类 104
4.2.5自定义满足Sorted集合的类 106
4.2.6定制SortedSet的排序规则 109
4.2.7集合的遍历 110
4.3映射(Map) 113
4.3.1 Map接口及含义 114
4.3.2 HashMap类的使用 114
4.3.3 Hashtable类的使用 116
4.3.4 LinkedHashMap类的使用 116
4.3.5 SortedMap接口与TreeMap类 117
4.3.6映射的遍历 119
小结 121
习题 121
上机指导 122
实验:使用迭代器完成遍历 122
第5章 数组与字符串 124
5.1数组的声明与创建 124
5.1.1声明数组引用 124
5.1.2创建数组对象 125
5.2 Java中数组的实现机制 126
5.3数组的初始化 128
5.3.1默认初始化 128
5.3.2利用循环初始化 129
5.3.3枚举初始化 130
5.4数组的相互赋值 131
5.4.1基本类型数组赋值规则 131
5.4.2引用类型数组赋值规则 132
5.5数组的基本操作 133
5.5.1数组复制 133
5.5.2数组排序 135
5.5.3搜索指定元素 135
5.5.4比较数组中的元素 136
5.6关于a gs[] 136
5.7 String类 137
5.7.1对象的创建 138
5.7.2巧用构造器 138
5.7.3 String类的重要方法 139
5.7.4 String的内存机制 141
5.8 StringBuffer类 145
5.8.1弥补String不足的StringBuffer类 145
5.8.2编写方法链以及StringBuffer类的重要方法 146
5.9正则表达式 147
5.9.1正则表达式的基本语法 148
5.9.2 Pattern类简介 150
5.9.3 Matcher类简介 151
5.9.4 Pattern与Matcher类的综合应用 151
5.9.5利用正则表达式进行查找替换 153
小结 154
习题 154
上机指导 155
实验一:编写数组复制的程序 155
实验二:改变 String对象引用的指向 156
第6章 Java Applet 157
6.1Applet概述 157
6.1.1 Applet的基本工作原理 157
6.1.2如何在网页中嵌入Applet 157
6.1.3 Applet的安全性 159
6.2 Applet的基本方法 159
6.3向Applet传递参数 161
6.4 Applet综合示例 162
6.4.1示例——使用Applet显示当前日期及时间 163
6.4.2示例——使用Applet实现计算器功能 164
6.4.3示例——使用Applet来处理声音文件 167
6.4.4示例——使用Applet显示图像 168
小结 170
习题 170
上机指导 171
实验一:Applet简单使用 171
实验二:在Applet中使用BorderLayout 172
实验三:Java Applet中使用字体列表显示各种字体 173
第7章 图形用户界面编程 175
7.1 Swing和AWT的对比 175
7.1.1 Swing与AWT之间的关系 175
7.1.2 Swing与AWT的控件的混用建议 176
7.2一个简单的图形用户界面程序 177
7.3容器类 179
7.3.1顶级容器概述 179
7.3.2 JFrame主窗口 179
7.3.3 JDialog对话框窗口 180
7.3.4 JPanel面板的使用 180
7.4布局管理器 180
7.4.1布局管理器的概述 180
7.4.2边框布局BorderLayout 181
7.4.3流动布局FlowLayout 182
7.4.4卡片布局CardLayout 182
7.4.5网格布局GridLayout 182
7.4.6使用绝对定位 183
7.5 Java事件处理机制 184
7.5.1事件处理模型 185
7.5.2为组件注册事件 185
7.6常见的事件处理 186
7.6.1鼠标事件 186
7.6.2鼠标移动事件 188
7.6.3选项事件 189
7.6.4窗口事件 189
7.6.5键盘事件 189
7.7 Swing组件 191
7.7.1按钮 192
7.7.2文本组件 192
7.7.3单选按钮JRadioButton 195
7.7.4复选框JCheckBox 195
7.7.5下拉列表JComboBox 196
7.7.6滑块JSlider 197
7.7.7进度条JProgressBar及Timer组件 197
7.7.8菜单JMenu概述 199
7.7.9工具栏JToolBar 199
7.8一个综合的Swing组件示例 200
小结 202
习题 203
上机指导 203
实验一:组合使用文本区与滚动窗口 203
实验二:使用滑块与进度条 205
实验三:文件、颜色对话框综合案例 207
第8章 Java输入输出与数据库操作 209
8.1流概述 209
8.1.1流的定义 209
8.1.2输入输出类结构 209
8.2一个读取文件的简单实例 211
8.3文件类(File)的使用 212
8.3.1获取指定文件的描述信息 213
8.3.2创建新文件 214
8.3.3文件改名及文件删除 215
8.3.4获取指定文件目录下的所有文件 216
8.4读取文件 217
8.4.1示例——读取文件并显示 217
8.4.2读取文件的分类及所涉及的类 219
8.5写入文件 220
8.5.1示例——将输入的文本保存到文件 220
8.5.2写入文件的分类及所涉及的类 222
8.5.3写入文件Writer类的基本方法 222
8.6随机访问文件 222
8.6.1 RandomAccessFile类的构造及内部方法 223
8.6.2示例——使用随机访问文件流来对文件进行读写 224
8.7创建压缩文件 225
8.7.1 ZipFile文件压缩类概述 225
8.7.2实现数据文件Zip方式的压缩方法 226
8.7.3将.class文件打包成jar文件 229
8.8数据库操作 229
8.8.1使用JDBC连接数据库 229
8.8.2执行SQL语句 235
小结 238
习题 238
上机指导 239
实验一:管理目录文件 239
实验二:学习使用字节流 240
实验三:利用JDBC连接数据库 241
第9章 多线程——Java中的并发协作 244
9.1线程的基本知识 244
9.1.1多线程编程的意义 244
9.1.2定义自己的线程 245
9.1.3创建线程对象 246
9.1.4启动线程 247
9.1.5同时使用多个线程 249
9.2线程的状态 251
9.3线程的调度 252
9.3.1睡眠 252
9.3.2线程的优先级 253
9.3.3线程的让步 253
9.3.4守护线程 254
9.4线程的同步 254
9.4.1同步方法简介 255
9.4.2简单使用同步方法 255
9.4.3线程同步调度的方法 258
9.4.4同步的语句块 258
9.4.5线程的死锁 259
9.5进程同步经典示例 261
9.5.1“生产者—消费者”案例的框架 262
9.5.2“生产者—消费者”案例的实际运行 265
9.5.3 notify方法的使用 266
9.6 volatile关键字的含义与使用 268
小结 269
习题 269
上机指导 270
实验一:Sleep方法的学习使用 270
实验二:利用线程同步实现生产者与消费者模式 272
实验三:线程的优先级 275
第10章 网络程序设计 277
10.1网络通信概述 277
10.1.1什么是网络通信 277
10.1.2网络协议基础 277
10.1.3 Java中所涉及到的网络应用类 278
10.2一个简单的网络编程实例 278
10.3使用URL类 280
10.3.1 URL类中常用的方法 280
10.3.2使用URLConnetion类 281
10.4使用InetAddress类获取IP地址信息 283
10.5使用套接字Socket类 285
10.5.1 Socket类与ServerSocket类 285
10.5.2建立与服务器的连接 286
10.6使用套接字Datagram类 291
10.6.1 Datagram(数据报)套接字 291
10.6.2使用Datagram实现数据传输 292
10.7网络程序经典示例——聊天室程序 294
10.7.1聊天室基本原理 294
10.7.2客户端程序 294
10.7.3服务器端程序 298
小结 305
习题 305
上机指导 306
实验一:使用URL标识网络中计算机上的资源 306
实验二:打印主机对应IP地址的InetAddress对象的主机名及地址 307
实验三:使用Socket编写C/S架构程序 307
第11章 异常处理 310
11.1异常处理的基本知识 310
11.1.1 try和catch捕获异常 310
11.1.2异常的传播过程 313
11.1.3 finally语句块的使用 315
11.2异常的层次结构 317
11.2.1捕获异常 318
11.2.2未捕获异常 320
11.3再次抛出异常 321
11.3.1什么是异常的再抛出 321
11.3.2显性再抛出 322
11.3.3隐性再抛出 324
11.4定义自己的异常 326
11.4.1创建自己的异常类 326
11.4.2使用自定义的异常类 327
11.5异常的匹配 329
11.5.1同时捕获多种异常 330
11.5.2多个catch语句的先后顺序 331
小结 332
习题 332
上机指导 334
实验一:finally语句的使用 334
实验二:创建自己的异常类 335
实验三:匹配异常 335