第1章 Java语言概述 1
1.1 Java语言的诞生与发展 1
1.2 Java语言的特点 2
1.3 Java语言规范 3
1.4 Java虚拟机 3
1.5 Java程序的种类和结构 4
本章小结 6
第1章习题 6
第2章 Java语言开发环境 7
2.1 Java开发工具 7
2.1.1 JDK的下载与安装 8
2.1.2设置JDK的操作环境 8
2.2 JDK帮助文档下载与安装 11
2.3 JDK的使用 12
本章小结 14
第2章习题 15
第3章 Java语言基础 16
3.1数据类型 16
3.2关键字与标识符 19
3.3常量 20
3.4变量 22
3.5数据类型转换 23
3.6由键盘输入数据 26
3.7运算符与表达式 31
3.7.1算术运算符 31
3.7.2关系运算符 32
3.7.3逻辑运算符 33
3.7.4位运算符 34
3.7.5赋值运算符 34
3.7.6条件运算符 35
3.7.7字符串运算符 35
3.7.8表达式及运算符的优先级、结合性 36
本章小结 37
第3章习题 37
第4章 流程控制 39
4.1语句与复合语句 39
4.2顺序结构 40
4.3分支结构 40
4.3.1 if条件语句 40
4.3.2 switch选择语句 43
4.4循环结构 45
4.4.1 while语句 46
4.4.2 do-while语句 48
4.4.3 for语句 51
4.4.4多重循环 52
4.5循环中的跳转语句 53
4.5.1 break语句 53
4.5.2 continue语句 53
4.5.3 return语句 54
本章小结 54
第4章习题 54
第5章 数组与字符串 56
5.1数组的基本概念 56
5.2一维数组 57
5.2.1一维数组的定义 57
5.2.2一维数组元素的访问 59
5.2.3一维数组的初始化及应用 60
5.3 foreach语句与数组 63
5.4多维数组 64
5.4.1二维数组 64
5.4.2三维以上的多维数组 67
5.5字符串 68
5.5.1字符串变量的创建 68
5.5.2 String类的常用方法 69
本章小结 71
第5章习题 72
第6章 类与对象 73
6.1类的基本概念 73
6.2定义类 74
6.3对象的创建与使用 77
6.3.1创建对象 77
6.3.2对象的使用 79
6.3.3在类定义内调用方法 82
6.4参数的传递 83
6.4.1以变量为参数调用方法 83
6.4.2以数组作为参数或返回值的方法调用 85
6.4.3方法中的可变参数 87
6.5匿名对象 88
本章小结 89
第6章习题 89
第7章 Java语言类的特性 91
7.1类的私有成员与公共成员 91
7.1.1私有成员 91
7.1.2公共成员 92
7.1.3缺省访问控制符 93
7.2方法的重载 94
7.3构造方法 95
7.3.1构造方法的作用与定义 95
7.3.2默认的构造方法 97
7.3.3构造方法的重载 97
7.3.4从一个构造方法内调用另一个构造方法 98
7.3.5公共的构造方法与私有的构造方法 100
7.4静态成员 101
7.4.1实例成员 101
7.4.2静态变量 102
7.4.3静态方法 104
7.4.4静态初始化器 106
7.5对象的应用 106
7.5.1对象的赋值与比较 107
7.5.2引用变量作为方法的返回值 109
7.5.3类类型的数组 110
7.5.4以对象数组为参数进行方法调用 111
7.6 Java语言的垃圾回收 112
本章小结 113
第7章习题 113
第8章 继承、抽象类、接口和枚举 115
8.1类的继承 115
8.1.1子类的创建 115
8.1.2在子类中访问父类的成员 120
8.1.3覆盖 121
8.1.4不可被继承的成员与最终类 124
8.1.5 Object类 125
8.2抽象类 130
8.2.1抽象类与抽象方法 130
8.2.2抽象类的应用 130
8.3接口 132
8.3.1接口的定义 132
8.3.2接口的实现与引用 133
8.3.3接口的继承 135
8.3.4利用接口实现类的多重继承 137
8.3.5接口中静态方法和默认方法 138
8.3.6解决接口多重继承中名字冲突问题 139
8.4枚举 140
8.4.1枚举类型的定义 140
8.4.2不包含方法的枚举 142
8.4.3包含属性和方法的枚举 143
8.5包 144
8.5.1包的概念 144
8.5.2使用package语句创建包 144
8.5.3 Java语言中的常用包 145
8.5.4 Java语言中几个常用的类 146
8.5.5利用import语句引用Java定义的包 149
8.5.6 Java程序结构 150
本章小结 151
第8章习题 152
第9章 异常处理 153
9.1异常处理的基本概念 153
9.1.1错误与异常 153
9.1.2 Java语言的异常处理机制 154
9.2异常处理类 155
9.3异常的处理 157
9.4抛出异常 160
9.5自动关闭资源的try语句 166
9.6自定义异常类 168
本章小结 170
第9章习题 170
第10章 Java语言的输入输出与文件处理 172
10.1 Java语言的输入输出 172
10.1.1流的概念 172
10.1.2输入输出流类库 174
10.2使用InputStream和OutputStream流类 176
10.2.1基本的输入输出流类 176
10.2.2输入输出流的应用 177
10.3使用Reader和Writer流类 186
10.3.1使用FileReader类读取文件 187
10.3.2使用FileWriter类写入文件 188
10.3.3使用BufferedReader类读取文件 189
10.3.4使用BufferedWriter类写入文件 190
10.4文件的处理与随机访问 191
10.4.1 Java语言对文件与文件夹的管理 192
10.4.2对文件的随机访问 194
本章小结 197
第10章习题 198
第11章 多线程 199
11.1线程的概念 199
11.1.1程序、进程、多任务与线程 199
11.1.2线程的状态与生命周期 201
11.1.3线程的优先级与调度 202
11.2 Java的Thread线程类与Runnable接口 203
11.2.1利用Thread类的子类来创建线程 203
11.2.2用Runnable接口来创建线程 206
11.2.3线程间的数据共享 209
11.3多线程的同步控制 212
11.4线程之间的通信 217
本章小结 219
第11章习题 221
第12章 泛型与容器类 222
12.1泛型 222
12.1.1泛型的概念 222
12.1.2泛型类及应用 223
12.1.3泛型方法 224
12.1.4限制泛型的可用类型 227
12.1.5泛型的类型通配符和泛型数组的应用 228
12.1.6继承泛型类与实现泛型接口 231
12.2容器类 232
12.2.1 Java容器框架 232
12.2.2容器接口Collection 232
12.2.3列表接口List 234
12.2.4集合接口Set 239
12.2.5映射接口Map 242
本章小结 245
第12章习题 247
第13章 注解、反射、内部类、匿名内部类与Lambda表达式 248
13.1注解 248
13.2反射机制 252
13.2.1 Class类 252
13.2.2反射包reflet中的常用类 254
13.2.3反射的应用 255
13.3内部类与匿名内部类 258
13.3.1内部类 258
13.3.2匿名内部类 260
13.4函数式接口与Lambda表达式 263
13.4.1函数式接口 263
13.4.2 Lambda表达式 264
13.4.3 Lambda表达式作为方法的参数 267
13.5方法引用 269
本章小结 272
第13章习题 273
第14章 图形界面设计 274
14.1图形用户界面概述 274
14.2图形用户界面工具包JavaFX 274
14.2.1 JavaFX组件分类 275
14.2.2 JavaFX的基本概念 276
14.3 JavaFX的布局面板 281
14.3.1面板类Pane和JavaFX CSS 281
14.3.2栈面板类StackPane 283
14.3.3流式面板类FlowPane 285
14.3.4边界面板类BoderPane 287
14.3.5网格面板类GridPane 289
14.3.6单行面板类HBox和单列面板类VBox 290
14.4 JavaFX的辅助类 291
14.4.1颜色类Color 292
14.4.2字体类Font 293
14.4.3图像类Image和图像显示类ImageView 293
14.5 JavaFX属性绑定 296
14.6 JavaFX常用控件 299
14.6.1标签Label 300
14.6.2文本编辑控件Text Field、PasswordField、Text Area与滚动面板ScrollPane 302
14.6.3 复选框CheckBox和单选按钮RadioButton 306
14.6.4选项卡面板TabPane和选项卡Tab 308
本章小结 310
第14章习题 310
第15章 事件处理 312
15.1 Java语言的事件处理机制——委托事件模型 312
15.2 Java语言的事件类 318
15.2.1动作事件ActionEvent 319
15.2.2鼠标事件MouseEvent 320
15.2.3键盘事件KeyEvent 322
15.3复选框和单选按钮及相应的事件处理 325
15.4文本编辑控件及相应的事件处理 327
15.5组合框及相应的事件处理 328
15.6为绑定属性添加监听者 330
15.7列表视图控件及相应的事件处理 331
15.8滑动条及相应的事件处理 334
15.9进度条及相应的事件处理 337
15.10菜单设计 339
15.10.1菜单基本知识 341
15.10.2窗口菜单 344
15.10.3弹出菜单 346
15.11工具栏设计 349
15.12文件选择对话框 351
15.13颜色选择器 354
15.14音频与视频程序设计 357
本章小结 360
第15章习题 360
第16章 绘图与动画程序设计 362
16.1图形坐标系与图形类 362
16.1.1直线类Line 363
16.1.2矩形类Rectangle 365
16.1.3圆类Circle 366
16.1.4椭圆类Ellipse 368
16.1.5弧类Arc 369
16.1.6多边形类Polygon与折线类Polyline 371
16.1.7交互式程序设计 372
16.2动图程序设计 374
16.2.1过渡动画 374
16.2.2时间轴动画 379
本章小结 383
第16章习题 383
第17章 Java数据库程序设计 385
17.1关系数据库系统 385
17.1.1数据库与数据库表 386
17.1.2完整性约束 387
17.2 SQL 388
17.2.1创建数据库 388
17.2.2表操作 388
17.2.3表数据操作 390
17.2.4数据查询 391
17.3 JDBC 394
17.3.1 JDBC概述 394
17.3.2 JDBC类型 395
17.3.3使用JDBC开发数据库应用程序 395
17.3.4数据库的进一步操作 403
17.3.5获取元数据 411
17.3.6事务操作 414
17.3.7在窗口中访问数据库 418
本章小结 420
第17章习题 420
第18章 Java网络编程 422
18.1网络基础 422
18.1.1 TCP/IP 422
18.1.2通信端口 423
18.1.3 URL的概念 423
18.1.4 Java语言的网络编程 424
18.2 URL编程 425
18.2.1创建URL对象 425
18.2.2使用URL类访问网络资源 426
18.3用Java语言实现底层网络通信 427
18.3.1 InetAddress程序设计 427
18.3.2基于连接的Socket通信程序设计 429
18.3.3无连接的数据报通信程序设计 437
本章小结 441
第18章习题 442
参考文献 443