第1章Java概述 1
1.1 Java语言简介 2
1.1.1 Java语言发展简史 2
1.1.2 Java语言的特性 3
1.2 Java技术的核心 5
1.2.1 Java虚拟机 5
1.2.2垃圾回收机制 5
1.3 Java平台体系结构 5
1.4搭建Java程序的开发环境 7
1.4.1 JDK的安装和配置 7
1.4.2 Eclipse的安装和使用 11
1.5 Java程序开发步骤 15
1.5.1编辑Java源代码 15
1.5.2编译Java程序 16
1.5.3运行Java程序 17
1.6 Java程序的装载和执行过程 18
1.6.1装载程序 19
1.6.2检验程序 19
1.6.3执行程序 19
1.7上机实训 19
本章习题 19
第2章 Java语言的基础语法 21
2.1 Java程序的基本结构 22
2.1.1代码框架 22
2.1.2注释 23
2.1.3标识符 24
2.1.4关键字 24
2.2数据类型 24
2.2.1整数型 25
2.2.2浮点型 25
2.2.3字符型 26
2.2.4布尔型 27
2.3变量 27
2.3.1变量的声明、初始化和使用 27
2.3.2变量的作用域 28
2.4数据类型间的转换 29
2.4.1自动转换 29
2.4.2强制转换 29
2.5运算符 30
2.5.1算术运算符 30
2.5.2赋值运算符 31
2.5.3关系运算符 32
2.5.4逻辑运算符 32
2.5.5三目运算符 33
2.5.6位运算符 33
2.5.7表达式 35
2.5.8表达式类型的自动提升 35
2.5.9运算符优先级 36
2.6流程控制 36
2.6.1顺序语句 37
2.6.2条件语句 37
2.6.3循环语句 43
2.6.4使用break和continue控制循环语句 46
2.6.5流程控制综合应用 48
2.7数组 50
2.7.1一维数组 50
2.7.2多维数组 53
2.8上机实训 56
本章习题 57
第3章 面向对象编程(上) 59
3.1面向对象编程概述 60
3.1.1面向过程的设计思想 60
3.1.2面向对象的设计思想 61
3.1.3类和对象 61
3.2封装类 62
3.2.1定义属性 63
3.2.2定义方法 64
3.2.3定义构造器 65
3.3对象的创建和使用 68
3.3.1对象的创建 68
3.3.2属性的初始化 69
3.3.3对象的使用 69
3.3.4对象的回收 70
3.4深入理解方法 70
3.4.1方法的参数传递 70
3.4.2方法重载 72
3.4.3方法的可变参数 73
3.4.4递归方法 74
3.5 this关键字 75
3.6属性、参数和局部变量的关系 77
3.7 JavaBean 77
3.8包 78
3.8.1声明包 78
3.8.2编译带包的类 79
3.8.3使用带包的类 79
3.8.4 JDK中的常用包 80
3.9文档注释 81
3.9.1在源代码中插入文档注释 81
3.9.2常规标记 81
3.9.3类或接口注释 82
3.9.4方法注释 83
3.9.5属性注释 84
3.9.6包和概述注释 85
3.9.7提取注释生成帮助文档 85
3.10上机实训 86
本章习题 87
第4章 面向对象编程(下) 89
4.1类的继承 90
4.1.1继承说明 91
4.1.2继承的优点 92
4.1.3继承设计 92
4.2 super关键字 93
4.3访问控制符 93
4.4常用修饰符 96
4.4.1 static 96
4.4.2 final 100
4.5方法覆盖 102
4.6多态 104
4.6.1对象变量多态 104
4.6.2多态方法 107
4.6.3多态参数 108
4.7抽象类 110
4.8接口 112
4.8.1接口的定义和实现 113
4.8.2接口中的变量 115
4.8.3多重接口 115
4.9嵌套类 116
4.9.1嵌套类的定义语法 117
4.9.2内部类 117
4.9.3静态嵌套类 120
4.10 JAR文件 121
4.10.1 jar命令 121
4.10.2清单文件 122
4.10.3创建可执行的JAR文件 122
4.11上机实训 123
本章习题 124
第5章 异常 129
5.1异常概述 130
5.2异常类的层次结构 131
5.2.1 Error类 132
5.2.2 Exception类 132
5.3异常的处理 133
5.3.1 try、 catch和finally语句块 133
5.3.2输出异常信息 135
5.3.3异常栈跟踪 137
5.4声明异常 138
5.5手动抛出异常 139
5.6自定义异常 140
5.6.1定义异常类 140
5.6.2使用自定义异常类 141
5.7 JDK 7新增的异常处理语法 141
5.7.1 try-with-resources语句 141
5.7.2 catch多个Exception 142
5.8处理异常时的建议 143
5.9上机实训 143
本章习题 143
第6章Java SE API常用类 147
6.1 Java SE API文档概述 148
6.1.1下载Java SE API文档 148
6.1.2 Java SE API文档的结构 149
6.1.3使用Java SE API文档 150
6.2 java.lang包 151
6.2.1 Object类 151
6.2.2基本数据类型的包装类 156
6.2.3枚举类型和枚举类 157
6.2.4 Math类 160
6.2.5 System类 161
6.2.6 Runtime类 165
6.2.7 String类 168
6.2.8 StringBuilder和StringBuffer类 173
6.3 java.util包 174
6.3.1 Random类 175
6.3.2 Arrays类 176
6.3.3日期和时间相关类 178
6.4国际化相关类 182
6.4.1 java.util.Locale类 182
6.4.2 java.text.MessageFormat类的格式化字符串 183
6.4.3 Java程序国际化 183
6.4.4 java.text.NumberFormat类的格式化数字方法 186
6.4.5 java.text.DateFormat类的格式化日期时间方法 187
6.5正则表达式相关类 190
6.5.1正则表达式语法 190
6.5.2 Java SE中的正则表达式API 193
6.5.3字符串类中与正则表达式相关的方法 195
6.5.4正则表达式使用示例 195
6.6大数字操作 197
6.6.1 Biglnteger 197
6.6.2 BigDecimal 198
6.7上机实训 199
本章习题 200
第7章 多线程 201
7.1线程概述 202
7.1.1进程 202
7.1.2线程 202
7.1.3多进程和多线程的区别 203
7.2线程的创建和启动 203
7.2.1单线程程序 203
7.2.2创建新线程 204
7.2.3启动线程 205
7.2.4 Thread类的常用方法 207
7.2.5为什么需要多线程程序 208
7.2.6线程分类 208
7.3线程的状态及转换 208
7.3.1新线程 209
7.3.2可运行的线程 209
7.3.3被阻塞和处于等待状态下的线程 209
7.3.4被终止的线程 210
7.4多线程的调度和优先级 210
7.4.1线程调度原理 210
7.4.2线程优先级 211
7.5线程的基本控制 212
7.5.1线程睡眠 212
7.5.2线程让步 213
7.5.3线程加入 214
7.6多线程的同步 215
7.6.1线程安全问题 215
7.6.2 synchronized关键字 217
7.6.3对象锁 219
7.6.4死锁 220
7.7线程交互 221
7.7.1 Object提供的wait和notify方法 221
7.7.2生产者-消费者问题 222
7.8用Timer类调度任务 224
7.9上机实训 225
本章习题 226
第8章 使用泛型 229
8.1泛型概述 230
8.2泛型类和接口的定义及使用 232
8.2.1定义泛型类和接口 232
8.2.2从泛型类派生子类 233
8.2.3实现泛型接口 234
8.3有界类型参数 234
8.4泛型方法 236
8.5类型参数的通配符 237
8.6擦除 237
8.7泛型的局限 239
8.8上机实训 240
第9章 Java集合框架 241
9.1 Java集合框架概述 242
9.2 Collection接口及Iterator接口 242
9.2.1 Collection接口 242
9.2.2 Iterator接口 243
9.3 Set接口及实现类 244
9.3.1 Set接口 244
9.3.2 HashSet实现类 245
9.3.3 LinkedHashSet实现类 248
9.4 List接口及实现类 249
9.4.1 List接口 249
9.4.2 ArrayList类 250
9.4.3 LinkedList实现类 251
9.5 Map接口及实现类 253
9.5.1 Map接口 253
9.5.2 HashMap类 254
9.5.3 LinkedHashMap类 255
9.6遗留的集合类 256
9.6.1 Vector类 256
9.6.2 Stack类 257
9.6.3 Hashtable类 258
9.6.4 Properties类 258
9.7排序集合 259
9.7.1 Comparable接口 260
9.7.2 TreeSet类 261
9.7.3 Comparator接口 262
9.7.4 TreeMap类 264
9.8集合工具类 265
9.8.1算法操作 265
9.8.2同步控制 267
9.9如何选择合适的集合类 267
9.10上机实训 268
本章习题 268
第10章I/O流 271
10.1 File类 272
10.1.1文件和目录 272
10.1.2 Java对文件的抽象 272
10.2 I/O原理 276
10.3流类概述 277
10.3.1 I/O流分类 277
10.3.2抽象流类 277
10.4文件流 280
10.4.1 FilelnputStream和 FileOutputStream 280
10.4.2 FileReader和FileWriter 284
10.5缓冲流 285
10.6转换流 286
10.6.1 InputStreamReader 286
10.6.2 OutputStreamWriter 288
10.7数据流 288
10.8打印流 289
10.9对象流 291
10.9.1序列化和反序列化操作 292
10.9.2序列化的版本标识 294
10.10随机存取文件流 295
10.11上机实训 297
本章习题 298
第11章 网络编程 301
11.1网络编程基础知识 302
11.1.1网络基本概念 302
11.1.2网络传输协议 304
11.2 Java与网络 306
11.2.1 InetAddress类 306
11.2.2 URL类 308
11.2.3 URLConnection类 310
11.2.4 URLEncoder和URLDecoder类 314
11.3 Java网络编程 316
11.3.1套接字 316
11.3.2基于TCP协议的网络编程 316
11.3.3基于UDP协议的网络编程 324
11.4上机实训 329
本章习题 330
第12章 GUI编程 331
12.1 Swing概述 332
12.1.1 Swing是什么 332
12.1.2 Swing架构 332
12.2 Swing容器 333
12.2.1顶层容器 333
12.2.2通用容器 337
12.2.3专用容器 344
12.3绘图 345
12.3.1 2D图形 346
12.3.2颜色 348
12.3.3文本和字体 348
12.3.4图像 349
12.4 Swing组件 350
12.4.1 Swing组件的层次结构 351
12.4.2按钮 352
12.4.3文本组件 354
12.4.4不可编辑信息显示组件 357
12.4.5菜单相关 360
12.4.6其他组件 363
12.5布局管理器 364
12.5.1 F1owLayout 365
12.5.2 BorderLayout 367
12.5.3 GridLayout 368
12.6处理GUI事件 369
12.6.1 Java SE事件模型 370
12.6.2 GUI事件分类 373
12.6.3事件适配器 374
12.7切换Swing观感 376
12.8上机实训 378
本章习题 379
第13章 标注和反射 381
13.1标注 382
13.1.1标注概述 382
13.1.2使用JDK内置的标注 382
13.1.3自定义标注 386
13.1.4标注的标注 387
13.2反射 390
13.2.1 Java反射API 391
13.2.2 Class类 391
13.2.3获取类信息 393
13.2.4生成对象 396
13.2.5调用方法 398
13.2.6访问成员变量的值 400
13.2.7操作数组 401
13.2.8 获取泛型信息 403
13.2.9使用反射获取标注信息 404
13.2.10反射与代理 406
13.3上机实训 410
本章习题 410
参考答案 413