第1章 Java程序设计概述 1
1.1Java语言概述 1
1.1.1Java语言的发展史 1
1.1.2Java语言的特性 2
1.1.3Java技术的核心 4
1.1.4Java平台体系结构 4
1.2建立Java SE开发环境 5
1.2.1JDK的安装和配置 6
1.2.2NetBeans的安装和基本使用 10
1.2.3Eclipse的安装和基本使用 14
1.3Java程序开发过程 18
1.3.1Java程序开发三步曲 18
1.3.2第一个Java程序 18
1.4Java程序的装载和执行过程 21
1.4.1装载程序 22
1.4.2检验程序 22
1.4.3执行程序 22
本章习题 22
第2章 Java语言基本语法 24
2.1Java代码基本结构 24
2.1.1代码框架 24
2.1.2注释 25
2.1.3标识符 26
2.1.4关键字 26
2.2数据类型 27
2.2.1整数型 27
2.2.2浮点型 28
2.2.3字符型 28
2.2.4布尔型 29
2.3变量 29
2.3.1变量的声明、初始化和使用 29
2.3.2变量的作用域 30
2.4数据类型间的转换 30
2.4.1自动转换 31
2.4.2强制转换 31
2.5运算符 31
2.5.1算术运算符 32
2.5.2赋值运算符 33
2.5.3关系运算符 33
2.5.4逻辑运算符 34
2.5.5三目运算符 34
2.5.6位运算符 35
2.5.7表达式 36
2.5.8表达式类型的自动提升 36
2.5.9优先级 37
2.6流程控制 38
2.6.1顺序语句 38
2.6.2条件语句 38
2.6.3循环语句 43
2.6.4break语句和continue语句 47
2.6.5流程控制综合应用 48
2.7数组 50
2.7.1一维数组 50
2.7.2多维数组 53
本章习题 56
第3章 面向对象编程基础篇 58
3.1面向对象编程简介 58
3.1.1类 58
3.1.2对象 59
3.2封装类 59
3.2.1定义属性 60
3.2.2定义方法 61
3.2.3定义构造器 62
3.3对象的创建和使用 64
3.3.1对象的创建 64
3.3.2属性的初始化 65
3.3.3对象的使用 66
3.3.4对象的回收 67
3.4方法的深入 67
3.4.1方法的参数传递 67
3.4.2方法的重载 68
3.4.3方法的可变参数 69
3.5this关键字 70
3.6属性、参数和局部变量的关系 72
3.7JavaBean 72
3.8包 73
3.8.1声明包 73
3.8.2编译带包的类 74
3.8.3使用带包的类 74
3.8.4JDK中的常用包 75
3.9文档注释 75
3.9.1在源代码中插入文档注释 76
3.9.2常规标记 76
3.9.3类或接口注释 77
3.9.4方法注释 78
3.9.5属性注释 79
3.9.6包和概述注释 79
3.9.7提取注释生成帮助文档 80
本章习题 80
第4章 面向对象编程高级篇 83
4.1类的继承 83
4.1.1继承说明 85
4.1.2继承的优点 86
4.1.3继承设计 86
4.2super关键字 86
4.3访问控制符 87
4.4常用修饰符 90
4.4.1static 90
4.4.2final 94
4.5方法覆盖 96
4.6多态 98
4.6.1对象变量多态 98
4.6.2多态方法 101
4.6.3多态参数 102
4.7抽象类 104
4.8接口 106
4.8.1接口的定义和实现 107
4.8.2接口中的变量 109
4.8.3多重接口 109
4.9嵌套类 111
4.9.1嵌套类的定义语法 111
4.9.2内部类 111
4.9.3静态嵌套类 114
4.10JAR文件 115
4.10.1jar命令 116
4.10.2清单文件 117
4.10.3创建可执行的JAR文件 117
本章习题 118
第5章 异常和断言 122
5.1异常 122
5.1.1异常概述 122
5.1.2异常类的层次结构 123
5.1.3异常的处理 125
5.1.4声明异常 130
5.1.5手动抛出异常 131
5.1.6自定义异常 132
5.1.7处理异常时的建议 133
5.2断言 134
5.2.1使用断言 134
5.2.2打开和关闭断言功能 135
5.2.3断言的使用技巧 136
本章习题 136
第6章 Java SE API常用类 139
6.1Java SE API文档概述 139
6.1.1下载Java SE API文档 140
6.1.2Java SE API文档的结构 142
6.1.3使用Java SE API文档 143
6.2java.lang包 144
6.2.1Object类 144
6.2.2基本数据类型的包装类 148
6.2.3枚举类型 150
6.2.4Math类 153
6.2.5System类 153
6.2.6Runtime类 157
6.2.7String类 161
6.2.8StringBuilder类和StringBuffer类 168
6.3java.util包 169
6.3.1Random类 169
6.3.2Scanner类 171
6.3.3Arrays类 171
6.3.4日期和时间类 173
6.4国际化相关 176
6.4.1java.util.Locale类 177
6.4.2java.text.MessageFormat类 177
6.4.3Java程序国际化 178
6.4.4java.text.NumberFormat类 180
6.4.5java.text.DateFormat类 182
6.5正则表达式相关 185
6.5.1正则表达式语法 185
6.5.2Java SE中的正则表达式API 188
6.5.3字符串类中与正则表达式相关的方法 190
6.5.4正则表达式使用示例 190
6.6大数字操作 191
6.6.1BigInteger 191
6.6.2BigDecimal 192
本章习题 193
第7章 多线程 196
7.1线程概述 196
7.2线程的创建和启动 197
7.2.1单线程程序 197
7.2.2创建新线程 198
7.2.3启动线程 199
7.2.4Thread类常用方法 201
7.2.5为什么需要多线程程序 201
7.2.6线程分类 202
7.3线程的状态及转换 202
7.3.1新线程 202
7.3.2可运行的线程 202
7.3.3被阻塞和处于等待状态下的线程 203
7.3.4被终止的线程 203
7.4多线程的调度和优先级 204
7.4.1线程调度原理 204
7.4.2线程优先级 204
7.5线程的基本控制 205
7.5.1线程睡眠 205
7.5.2线程让步 206
7.5.3线程加入 207
7.6多线程的同步 208
7.6.1线程安全问题 208
7.6.2synchronized关键字 211
7.6.3对象锁 212
7.6.4死锁 213
7.7线程交互 215
7.7.1Object提供的wait和notify方法 215
7.7.2生产者—消费者问题 215
7.8用Timer类调度任务 218
本章习题 219
第8章 使用泛型 223
8.1泛型概述 223
8.2泛型类和接口的定义及使用 226
8.2.1定义泛型类和接口 226
8.2.2从泛型类派生子类 226
8.2.3实现泛型接口 227
8.3有界类型参数 228
8.4泛型方法 229
8.5类型参数的通配符 230
8.6擦除 231
8.7泛型的局限 232
本章习题 233
第9章 Java集合框架 234
9.1Java集合框架概述 234
9.2Collection接口及Iterator接口 235
9.2.1Collection接口 235
9.2.2Iterator接口 236
9.3Set接口及实现类 236
9.3.1Set接口 236
9.3.2HashSet实现类 237
9.3.3LinkedHashSet实现类 241
9.4List接口及实现类 242
9.4.1List接口 242
9.4.2ArrayList类 242
9.4.3LinkedList实现类 244
9.5Map接口及实现类 246
9.5.1Map接口 246
9.5.2HashMap类 247
9.5.3LinkedHashMap类 248
9.6遗留的集合类 249
9.6.1Vector类 249
9.6.2Stack类 249
9.6.3Hashtable类 250
9.6.4Properties类 251
9.7排序集合 252
9.7.1Comparable接口 252
9.7.2TreeSet类 254
9.7.3Comparator接口 255
9.7.4TreeMap类 257
9.8集合工具类 258
9.8.1算法操作 258
9.8.2同步控制 259
9.9如何选择合适的集合类 260
本章习题 260
第10章 流 262
10.1File类 262
10.1.1文件和目录 262
10.1.2Java对文件的抽象 263
10.2IO原理 267
10.3流类概述 267
10.3.1IO流分类 267
10.3.2抽象流类 268
10.4文件流 271
10.4.1FileInputStream和FileOutputStream 271
10.4.2FileReader和FileWriter 274
10.5缓冲流 275
10.6转换流 277
10.6.1InputStreamReader 277
10.6.2OutputStreamWriter 278
10.7数据流 278
10.8打印流 280
10.9对象流 282
10.9.1序列化和反序列化操作 282
10.9.2序列化的版本 285
10.10随机存取文件流 285
本章习题 288
第11章 网络编程 290
11.1网络编程基础知识 290
11.1.1网络基本概念 290
11.1.2网络传输协议 292
11.2Java与网络 294
11.2.1InetAddress类 294
11.2.2URL类 295
11.2.3URLConnection类 298
11.2.4URLEncoder类和URLDecoder类 302
11.3Java网络编程 304
11.3.1套接字 304
11.3.2基于TCP协议的网络编程 304
11.3.3基于UDP协议的网络编程 312
本章习题 317
第12章 Java图形用户界面编程 319
12.1Swing概述 319
12.1.1Swing是什么 319
12.1.2Swing架构 320
12.2Swing容器 320
12.2.1顶层容器 320
12.2.2通用容器 324
12.2.3专用容器 331
12.3绘图 332
12.3.12D图形 333
12.3.2颜色 334
12.3.3文本和字体 335
12.3.4图像 336
12.4Swing组件 337
12.4.1Swing组件的层次结构 338
12.4.2按钮 339
12.4.3文本组件 340
12.4.4不可编辑信息显示组件 343
12.4.5菜单相关 346
12.4.6格式化显示组件 349
12.4.7其他组件 358
12.5布局管理器 361
12.5.1FlowLayout 362
12.5.2BorderLayout 363
12.5.3GridLayout 364
12.5.4BoxLayout 366
12.6处理GUI事件 368
12.6.1Java SE事件模型 368
12.6.2GUI事件分类 371
12.6.3事件适配器 372
12.7切换Swing观感 375
本章习题 377
第13章 注解和反射 379
13.1注解 379
13.1.1注解概述 379
13.1.2使用JDK内置的注解 380
13.1.3自定义注解 383
13.1.4注解的注解 384
13.2反射 387
13.2.1Java反射API 388
13.2.2Class类 388
13.2.3获取类信息 389
13.2.4生成对象 392
13.2.5调用方法 395
13.2.6访问成员变量的值 397
13.2.7操作数组 398
13.2.8获取泛型信息 400
13.2.9使用反射获取注解信息 401
13.2.10反射与代理 404
本章习题 407