第1章 初识Java 1
1.1第一个Java程序 1
1.1.1编写Java程序 1
1.1.2编译Java程序 1
1.1.3运行Java程序 2
1.2 Java编码规范 2
1.3集成开发环境(IDE) 3
1.4小结 4
习题 4
第2章 语言基础 5
2.1 ASCII和Unicode 5
2.2分隔符 7
2.3基本类型 7
2.4变量 8
2.5常量 10
2.6字面量 11
2.6.1整数字面量 11
2.6.2浮点字面量 12
2.6.3布尔字面量 13
2.6.4字符字面量 13
2.7基本类型转换 14
2.7.1扩大转换 14
2.7.2缩小转换 15
2.8操作符 15
2.8.1一元操作符 16
2.8.2算术操作符 18
2.9注解 24
2.10小结 25
习题 25
第3章 语句 26
3.1 Java语句概述 26
3.2 if语句 27
3.3 while语句 29
3.4 do-while语句 30
3.5 for语句 31
3.6 break语句 34
3.7 continue语句 35
3.8 switch语句 35
3.9小结 36
习题 36
第4章 对象和类 38
4.1什么是Java对象 38
4.2 Java类 39
4.2.1域 40
4.2.2方法 40
4.2.3 UML类图中的类成员 42
4.3创建对象 42
4.4关键字null 43
4.5内存中的对象 43
4.6 Java包 46
4.7封装和访问控制 47
4.7.1类访问控制修饰符 47
4.7.2类成员访问控制修饰符 49
4.8关键字this 51
4.9使用其他类 52
4.10 final变量 53
4.11静态成员 54
4.12静态final变量 55
4.13静态导入 56
4.14变量作用域 57
4.15方法重载 58
4.16赋值传递还是引用传递 59
4.17加载、链接和初始化 59
4.17.1加载 60
4.17.2链接 60
4.17.3初始化 60
4.18对象创建初始化 61
4.19对象的比较 64
4.20垃圾回收器 64
4.21小结 64
习题 65
第5章 核心类 66
5.1 java.lang.Object 66
5.2 java.lang.String 67
5.2.1比较两个String对象 68
5.2.2字符串字面量 69
5.2.3字符转义 69
5.2.4 switch中的String 69
5.2.5 String类的构造器 70
5.2.6 String类的方法 71
5.3 java.lang.StringBuffer和java.lang.StringBuilder 73
5.3.1 StringBuilder类的构造器 73
5.3.2 StringBuilder类的方法 74
5.4基本类型包装 74
5.4.1 java.lang.Integer 75
5.4.2 java.lang.Boolean 75
5.4.3 java.lang.Character 76
5.5数组 76
5.5.1迭代数组 78
5.5.2修改数组大小 78
5.5.3将String数组传递给main 80
5.6 java.lang.Class 80
5.7 java.lang.System 81
5.8 java.util.Scanner 85
5.9装箱和拆箱 85
5.10可变参数 85
5.11格式和printf方法 86
5.12小结 87
习题 87
第6章 继承 88
6.1继承概述 88
6.1.1关键字extends 88
6.1.2 is-a关系 89
6.2可访问性 90
6.3方法覆盖 91
6.4调用超类的构造器 92
6.5调用超类的隐藏成员 94
6.6类型转换 94
6.7 Final类 95
6.8关键字instanceof 95
6.9小结 96
习题 96
第7章 错误处理 97
7.1捕捉异常 97
7.2没有catch的try 99
7.3捕捉多个异常 99
7.4 try-with-resources语句 99
7.5 java.lang.Exception类 100
7.6从方法抛出异常 101
7.7用户自定义的异常 102
7.8异常处理总结 103
7.9小结 104
习题 104
第8章 数字和日期 105
8.1数字解析 105
8.2数字格式化 106
8.3用java.text.NumberFormat解析数字 107
8.4 java.lang.Math类 107
8.5 java.util.Date类 108
8.6 java.util.Calendar类 109
8.7用DateFormat进行日期解析和格式化 110
8.7.1 DateFormat 110
8.7.2 SimpleDateFormat 111
8.8小结 112
习题 112
第9章 接口和抽象类 113
9.1接口的概念 113
9.2从技术角度看接口 114
9.2.1接口中的域 115
9.2.2方法 115
9.3基类 116
9.4抽象类 117
9.5小结 118
习题 118
第10章 枚举 119
10.1枚举概述 119
10.2类中的枚举 120
10.3 java.lang.Enum类 121
10.4迭代枚举值 121
10.5枚举在switch中的应用 121
10.6小结 122
习题 122
第11章 集合框架 123
11.1集合框架概述 123
11.2 Collection接口 124
11.3 List和ArrayList 124
11.4用Iterator和for迭代集合 126
11.5 Set和HashSet 127
11.6 Queue和LinkedList 128
11.7集合转换 129
11.8 Map和HashMap 129
11.9对象比较和排序 130
11.9.1使用java.lang.Comparable 130
11.9.2使用Comparable和Comparator 133
11.10小结 136
习题 136
第12章 泛型 137
12.1没有泛型的生活 137
12.2泛型类型简介 138
12.3使用没有类型参数的泛型类型 140
12.4使用“?”通配符 141
12.5在方法中使用有界通配符 143
12.6编写泛型类型 144
12.7小结 145
习题 145
第13章 输入/输出 146
13.1文件系统和路径 147
13.2文件和目录的处理及操作 148
13.2.1创建和删除文件及目录 148
13.2.2获取目录的对象 149
13.3.3复制和移动文件 149
13.2.4文件读取和写入 150
13.3输入/输出流 152
13.4读取二进制数据 152
13.5写入二进制数据 156
13.6写入文本(字符) 159
13.6.1 Writer 159
13.6.2 OutputStreamWriter 160
13.6.3 PrintWriter 161
13.7读取文本(字符) 163
13.7.1 Reader 163
13.7.2 InputStreamReader 163
13.7.3 BufferedReader 165
13.8用PrintStream记录日志 166
13.9随机访问文件 167
13.10对象序列化 171
13.11小结 173
习题 173
第14章 嵌套类和内部类 174
14.1嵌套类概述 174
14.2静态的嵌套类 175
14.3成员内部类 176
14.4局部内部类 178
14.5匿名内部类 179
14.6深入嵌套类和内部类 180
14.7小结 182
习题 183
第15章Swing基础知识 184
15.1 AWT组件 185
15.2有用的AWT类 187
15.2.1 java.awt.Color 187
15.2.2 java.awt.Font 187
15.2.3 java.awt.Point 187
15.2.4 java.awt.Dimension 188
15.2.5 java.awt.Rectangle 188
15.2.6 java.awt.Graphics 188
15.2.7 java.awt.Toolkit 188
15.3基础的Swing组件 189
15.3.1 JFrame 189
15.3.2调整尺寸和定位 192
15.3.3扩展JFrame 194
15.3.4 JComponent 195
15.3.5 Icon和ImageIcon 196
15.3.6 JLabel 196
15.3.7 JButton 198
15.3.8 JTextField和JPasswordField 199
15.3.9 JTextArea 201
15.3.10 JCheckbox 202
15.3.11 JRadioButton 203
15.3.12 JList 205
15.3.13 JComboBox 206
15.3.14 JDialog 207
15.3.15 JOptionPane 210
15.3.16 JFileChooser 214
15.4小结 216
习题 217
第16章Swing高级知识 218
16.1布局管理器 218
16.1.1 BorderLayout 219
16.1.2 FlowLayout 221
16.1.3 BoxLayout 222
16.1.4 GridLayout 223
16.1.5不用LayoutManager 224
16.2事件处理 225
16.2.1 Java事件模型 225
16.2.2 Swing事件处理 226
16.2.3 AWT事件API 228
16.3使用菜单 239
16.4外观 240
16.5快速启动画面 242
16.6系统托盘支持 244
16.7桌面助手应用程序 246
16.8小结 250
习题 250
第17章 多态 251
17.1定义多态 251
17.2多态实战 254
17.3绘图应用程序中的多态 254
17.4多态和反射 259
17.5小结 261
习题 261
第18章 注解 262
18.1注解概述 262
18.1.1注解和注解类型 262
18.1.2注解语法 263
18.1.3注解接口 263
18.2标准注解 264
18.2.1 Override 264
18.2.2 Deprecated 264
18.2.3 SuppressWarnings 266
18.3一般注解 267
18.4标准元注解 267
18.4.1 Documented 267
18.4.2 Inherited 268
18.4.3 Retention 268
18.4.4 Target 268
18.5定制注解类型 269
18.5.1编写自己的定制注解类型 269
18.5.2使用定制注解类型 269
18.5.3用反射查询注解 270
18.6小结 271
习题 271
第19章 国际化 272
19.1 Locale 272
19.2应用程序国际化 274
19.2.1将文本组件单独放进属性文件 274
19.2.2用ResourceBundle读取属性文件 275
19.3将Swing应用程序国际化 275
19.4小结 277
习题 277
第20章Applet 278
20.1 Applet历史简介 278
20.2 Applet API 279
20.2.1 Applet类 279
20.2.2 AppletContext接口 281
20.2.3 AudioClip接口 281
20.2.4 AppletStub接口 282
20.3安全限制 282
20.4编写和部署applet 282
20.5 AppletViewer工作原理 284
20.6将参数传递给Applet 285
20.7 SoundPlayerApplet 288
20.8 JApplet 289
20.9在JAR文件中部署Applet 290
20.10更快速加载 290
20.11小结 291
习题 291
第21章Java网络 292
21.1网络概述 292
21.2超文本转移协议(HTTP) 293
21.2.1 HTTP请求 293
21.2.2 HTTP响应 294
21.3 java.net.URL 295
21.3.1解析URL 295
21.3.2读取Web资源 296
21.4 java.net.URLConnection 297
21.4.1读取Web资源 298
21.4.2把数据写入Web服务器 300
21.5 java.net.Socket 300
21.6 java.net.ServerSocket 302
21.7一个Web服务器应用程序 303
21.7.1 HttpServer类 303
21.7.2 Request类 306
21.7.3 Response类 308
21.7.4运行应用程序 310
21.8小结 311
习题 311
第22章JDBC 312
22.1 JDBC简介 312
22.2数据访问的4个步骤 313
22.2.1加载JDBC驱动程序 313
22.2.2获得数据库连接 314
22.2.3创建Statement对象 315
22.2.4创建一个ResultSet对象 316
22.3关闭JDBC对象 317
22.4读取元数据 318
22.5 SQLTool示例 318
22.6小结 323
习题 323
第23章Java线程 324
23.1 Java线程简介 324
23.2创建线程 324
23.2.1扩展线程 326
23.2.2实现Runnable接口 327
23.3使用多线程 327
23.4线程优先级 329
23.5停止线程 330
23.6同步 333
23.6.1线程冲突 333
23.6.2方法同步 334
23.6.3块同步 335
23.7可见性 336
23.8线程协调 338
23.9使用Timer 342
23.10 Swing Timer 344
23.11小结 346
习题 346
第24章 并发工具 347
24.1原子变量 347
24.2 Executor和ExecutorService 348
24.3 Callable和Future 351
24.4 Swing Worker 354
24.5锁 357
24.6小结 359
习题 359
第25章 安全 360
25.1 Java安全概述 360
25.2使用安全管理器 361
25.3策略文件 362
25.3.1 keystore 363
25.3.2 grant 363
25.4权限 364
25.4.1 java.io.FilePermission 365
25.4.2 java.security.BasicPermission 365
25.4.3 java.util.PropertyPermission 365
25.4.4 java.net.SocketPermission 365
25.4.5 java.security.Unresolved-Permission 366
25.4.6 java.lang.RuntimePermission 366
25.4.7 java.awt.AWTPermission 366
25.4.8 java.net.NetPermission 367
25.4.9 java.lang.reflect.Reflect-Permission 367
25.4.10 java.io.Serializable-Permission 367
25.4.11 java.security.Security-Permission 367
25.4.12 java.security.AllPermission 367
25.4.13 javax.security.auth.Auth-Permission 367
25.5使用Policy Tool 368
25.6 Applet安全 369
25.7安全编程 370
25.8加密概述 370
25.8.1加密/解密 371
25.8.2验证 372
25.8.3数据完整性 374
25.8.4 SSL工作原理 374
25.9创建证书 375
25.10 KeyTool程序 375
25.10.1生成配对的密钥 376
25.10.2进行认证 377
25.10.3将证书导入密钥库 377
25.10.4从密钥库中导出证书 378
25.10.5列出密钥库条目 378
25.11 JarSigner工具 378
25.11.1签署JAR文件 378
25.11.2验证已签署的JAR文件 379
25.11.3范例:签署一个Applet 379
25.12 Java Cryptography API 382
25.13小结 382
习题 382
第26章Java Web应用程序 383
26.1 Servlet应用程序架构 383
26.2 Servlet API概述 384
26.3 Servlet 385
26.4编写基础的Servlet应用程序 386
26.4.1安装Tomcat 386
26.4.2编写和编译Servlet类 386
26.4.3应用程序目录结构 388
26.4.4访问Servlet 389
26.5 ServletRequest 389
26.6 ServletResponse 390
26.7 ServletConfig 390
26.8 ServletContext 393
26.9 GenericServlet 393
26.10 HTTP Servlet 395
26.10.1 HttpServlet 395
26.10.2 HttpServletRequest 396
26.10.3 HttpServletResponse 397
26.10.4编写一个Http Servlet 397
26.11使用部署描述符 401
26.12小结 403
习题 404
第27章JavaServer Pages 405
27.1 JSP概述 405
27.2 jspInit、jspDestroy及其他方法 407
27.3隐式对象 408
27.4 JSP语法元素 409
27.4.1指令 409
27.4.2脚本元素 411
27.5处理错误 413
27.6小结 414
习题 414
第28章Javadoc 415
28.1在Java类中编写文档 416
28.1.1@ author 416
28.1.2{@ code} 417
28.1.3{@ docRoot} 417
28.1.4@ deprecated 417
28.1.5@ exception 417
28.1.6{@ inheritDoc} 417
28.1.7{@ link} 418
28.1.8{@ linkplain} 418
28.1.9{@ literal} 418
28.1.10@ param 418
28.1.11@ return 419
28.1.12@ see 419
28.1.13@ serial 419
28.1.14@ serialData 420
28.1.15@ serialField 420
28.1.16@ since 420
28.1.17@ throws 420
28.1.18{@ value} 420
28.1.19@ version 421
28.2 Javadoc语法 421
28.2.1 Javadoc选项 422
28.2.2标准Doclet选项 423
28.2.3生成文档 424
28.3小结 425
习题 425
第29章 应用程序部署 426
29.1 JWS概述 426
29.2 JNLP文件语法 426
29.2.1 jnlp元素 427
29.2.2 information元素 428
29.2.3 security元素 429
29.2.4 resources元素 429
29.2.5 application-desc元素 429
29.2.6 applet-desc元素 429
29.3部署范例 430
29.4安全关注点 432
29.5小结 433
习题 433
附录A javac 434
附录B java 439
附录C jar 444
附录D NetBeans 448
附录E Eclipse 452