第1章面向对象和Java语言 1
1.1面向对象初探 1
1.1.1程序设计语言及其发展历程 1
1.1.2面向对象编程的主要优点 2
1.2Java的特点 3
1.2.1简单性 3
1.2.2面向对象 4
1.2.3健壮性 4
1.2.4安全性 4
1.2.5解释执行 5
1.2.6高性能 5
1.2.7可移植性 5
1.3Java应用平台简介 5
1.3.1JavaSE(J2SE) 5
1.3.2JavaEE(J2EE) 6
1.3.3JavaME(J2ME) 6
1.4学习Java的建议 6
1.5小结 9
1.6习题 9
第2章搭建Java学习环境 10
2.1下载并安装JDK 10
2.2设置环境变量 15
2.2.1设定JAVAHOME 16
2.2.2设定CLASSPATH 17
2.2.3修改Path 17
2.3实现经典的HelloWorld 18
2.3.1源代码的编写及保存 18
2.3.2编译源代码 19
2.3.3执行程序 20
2.4编辑及编译环境的选择 20
2.5小结 21
2.6习题 21
第3章Java的基本语法 22
3.1Java的基本数据类型 22
3.1.1基本数据类型及其取值范围 22
3.1.2常量及变量 24
3.1.3数据类型转换 26
3.1.4变量的作用域 28
3.1.5局部变量的初始化 28
3.1.6装箱与拆箱 29
3.2表达式与位运算 32
3.2.1算术表达式 32
3.2.2赋值表达式 33
3.2.3关系表达式 35
3.2.4逻辑表达式 36
3.2.5位运算 38
3.2.6运算符的优先级 41
3.3程序流程控制 42
3.3.1顺序结构 42
3.3.2分支结构 42
3.3.3循环结构 52
3.4小结 61
3.5习题 61
第4章数组 62
4.1一维数组 62
4.1.1数组的概念及定义形式 62
4.1.2数组应用示例 67
4.1.3Java数组的实质 68
4.2二维数组及多维数组 70
4.2.1二维数组的定义及使用 70
4.2.2深入理解二维数组 71
4.2.3多维数组 73
4.3数组操作类 74
4.3.1System类 74
4.3.2Arrays类 77
4.4使用foreach遍历数组 81
4.5小结 82
4.6习题 82
第5章字符串 83
5.1String类 83
5.1.1String对象的赋值 83
5.1.2字符串操作方法 84
5.1.3字符串池 89
5.2StringBuffer类与StringBuilder类 91
5.3正则表达式 93
5.4小结 96
5.5习题 97
第6章类的定义及使用 98
6.1面向对象概述 98
6.2Java类定义格式 99
6.3实现封装 102
6.3.1类成员访问权限控制 102
6.3.2封装数据成员 103
6.3.3封装方法成员 106
6.3.4方法的重载 108
6.3.5特殊的方法成员——构造器 113
6.4类的继承 118
6.4.1扩展类 118
6.4.2子类实例化过程 120
6.4.3重写父类方法 122
6.4.4Object类 125
6.5多态、抽象类及接口 128
6.5.1多态及其实现 128
6.5.2基于抽象类实现多态 131
6.5.3基于接口实现多态 132
6.5.4实现接口和类之间的适配器 135
6.6包 137
6.6.1Java的类管理机制 137
6.6.2导入其他包中的类 139
6.6.3类成员访问权限控制补充及类的访问权限 141
6.7内嵌类 141
6.7.1成员内嵌类 142
6.7.2局部内嵌类 144
6.7.3匿名内嵌类 145
6.8小结 146
6.9习题 146
第7章枚举 147
7.1枚举的定义 147
7.1.1使用常量增强程序的可读性及可维护性 147
7.1.2使用枚举类型替代常量 149
7.2枚举的实质 150
7.2.1枚举中可以使用的方法 151
7.2.2为枚举添加构造器 152
7.2.3为枚举添加方法 153
7.3小结 155
7.4习题 155
第8章异常处理及自定义异常 156
8.1在代码中处理异常 156
8.1.1异常处理机制 156
8.1.2异常处理示例 157
8.2在方法中抛出异常 164
8.2.1通过throws抛出要求调用者处理的异常 164
8.2.2使用throw抛出异常 166
8.3自定义异常 168
8.3.1异常的继承关系 168
8.3.2实现自定义的异常类 170
8.3.3重写方法时的异常处理 173
8.4断言 175
8.5小结 177
8.6习题 177
第9章输入与输出操作 178
9.1接受键盘输入 178
9.1.1Systemin及流的概念 178
9.1.2Scanner 181
9.2输出及输出格式控制 183
9.2.1Systemout 183
9.2.2输出格式控制 184
9.3文件 186
9.3.1File类 186
9.3.2RandomAccessFile类 189
9.4字节流 191
9.4.1InputStream和OutputStream 191
9.4.2FilelnputStream和FileOutputStream 193
9.4.3BufferedlnputStream和BufferedOutputStream 194
9.4.4DatalnputStream和DataOutputStream 196
9.4.5ObjectlnputStream和ObjectOutputStream 198
9.4.6ByteArraylnputStream和ByteArrayOutputStream 200
9.4.7PushbacklnputStream 203
9.5字符流 206
9.5.1Reader和Writer 206
9.5.2InputStreamReader和OutputStreamWriter 207
9.5.3FileReader和FileWriter 208
9.5.4BufferedReader和BufferedWriter 209
9.5.5PrintWriter 210
9.6小结 211
9.7习题 211
第10章多线程 213
10.1多线程简介 213
10.1.1多线程原理 213
10.1.2线程的生命周期 214
10.2通过继承类Thread产生线程 215
10.3通过实现接口Runnable产生线程 225
10.4线程同步 227
10.4.1多线程带来的问题 227
10.4.2同步线程 230
10.4.3线程协同 234
10.5Daemon线程 242
10.6线程组 245
10.7小结 247
10.8习题 247
第11章容器类与泛型编程 248
11.1泛型编程简介及泛型编程思想 248
11.2List 256
11.2.1List接口 256
11.2.2ArrayList 257
11.2.3LinkedList 259
11.3Set 262
11.3.1Set接口 262
11.3.2HashSet 262
11.3.3TreeSet 263
11.4Map 265
11.4.1Map接口 265
11.4.2HashMap 266
11.4.3TreeMap 268
11.5小结 270
11.6习题 270
第12章反射与注解 271
12.1加载类 271
12.1.1通过Class对象取得类的基本信息 272
12.1.2类的加载时机 275
12.1.3使用ClassforName加载类 277
12.2使用反射生成与操作对象 279
12.2.1生成对象 279
12.2.2调用方法 281
12.2.3访问数据成员 284
12.3注解 287
12.3.1说明重写父类——@Override 287
12.3.2说明不建议使用——@Deprecated 289
12.3.3抑制编译警告——@SuppressWarnings 289
12.4小结 291
第13章图形界面编程 292
13.1AWT与Swing简介 292
13.1.1AWT简介 292
13.1.2Swing简介 293
13.2Swing容器及组件 296
13.2.1Swing容器——JFrame及JPanel 296
13.2.2Swing组件——JLabel、JTextField、JButton及JTextArea 298
13.2.3其他容器与组件简介 301
13.3Java事件模型 308
13.3.1事件处理机制简介 308
13.3.2事件监听器 309
13.3.3事件适配器 311
13.4布局管理器 312
13.4.1布局管理器概述 313
13.4.2BorderLayout 313
13.4.3FlowLayout 314
13.4.4GridLayout 315
13.4.5其他布局管理器 316
13.5为窗口添加菜单 316
13.5.1Java菜单简述 316
13.5.2为英汉电子辞典添加菜单 318
13.6小结 319
第14章网络编程 320
14.1TCP/IP协议与套接字 320
14.2基于TCP协议的网络程序 321
14.2.1TCP协议简介 322
14.2.2互联网协议地址类InetAddress 323
14.2.3服务器套接字类ServerSocket 323
14.2.4套接字类Socket 325
14.2.5基于TCP协议的服务程序 326
14.2.6基于TCP协议的客户程序 329
14.3基于UDP协议的网络程序 331
14.3.1UDP协议简介 331
14.3.2数据报套接字类DatagramSocket 332
14.3.3数据报包类DatagramPacket 333
14.3.4基于UDP协议的发送程序 335
14.3.5基于UDP协议的接收程序 336
14.4小结 337
第15章数据库编程 338
15.1JDBC简介 338
15.2连接数据库 341
15.2.1使用JDBCODBC桥连接Access数据库 342
15.2.2连接SQLServer数据库 347
15.2.3连接Oracle数据库 348
15.2.4连接MySQL数据库 349
15.3查询数据 351
15.4更新、删除与插入数据 352
15.4.1使用ResultSet更新、删除与插入数据 353
15.4.2使用Statement更新、删除与插入数据 356
15.5小结 358