第17章 面向对象数据结构 2
17.1 引言 2
17.2 线性表 2
第5篇 数据结构与集合构架 2
17.2.1 数组线性表 5
17.2.2 链表(可选) 9
17.3 栈和队列 15
17.4 二叉树(可选) 18
17.4.2 在二叉搜索树中插入元素 19
17.4.1 二叉树的表示 19
17.4.3 二叉树的遍历 20
17.4.4 二叉树的类 20
主要术语 23
本章小结 23
复习题 23
编程练习 24
第18章 Java集合构架 26
18.1 引言 26
18.2 Collection接口和AbstractCollection类 27
18.3.1 散列集HashSet 28
18.3 规则集Set 28
18.3.2 链式散列集LinkedHashSet 29
18.3.3 树形集TreeSet 30
18.4 比较器接口Comparator 32
18.5 线性表List 33
18.5.1 数组线性表ArrayList和链表LinkedList 34
18.5.2 向量类Vector 36
18.5.3 栈类Stack 38
18.7 图Map 40
18.6 一般类型的使用(JDK 1.5的功能) 40
18.8 Collections类 44
18.9 Arrays类 47
主要术语 49
主要的类和方法 49
本章小结 49
复习题 50
编程练习 52
19.2 线程的概念 56
19.1 引言 56
第6篇 多线程和国际化 56
第19章 多线程 56
19.3 扩展Thread类创建线程 57
19.4 实现runnable接口创建线程 59
19.5 线程的控制与通信 60
19.5.1 线程的状态 62
19.5.2 线程的优先级 63
19.6 线程组 63
19.7 线程之间的同步与协作 64
19.7.1 同步化实例与静态方法 66
19.7.2 同步语句 67
19.7.3 线程之间的协作 67
19.7.4 死锁 69
19.8 使用线程控制动画(可选) 70
19.9 在独立的线程上播放音频(可选) 72
19.10 进程条JProgressBar(可选) 76
主要的类和方法 79
本章小结 79
主要术语 79
复习题 80
编程练习 81
第20章 国际化 84
20.1 简介 84
20.2 地区类Locale 84
20.3 处理日期和时间 86
20.3.1 时区类TimeZone 86
20.3.2 日期格式类DateFormat 86
20.3.3 简单日期格式类SimpleDateFormat 87
20.3.4 日期格式符号类DateFormatSymbols 88
20.4 数字格式化 96
20.4.1 普通数字格式 96
20.4.2 货币格式 97
20.4.3 百分数格式 97
20.4.4 数字的转换 98
20.4.5 数字格式类DecimalFormat 98
20.5 资源簇(可选) 101
主要的类和方法 106
主要术语 106
复习题 107
本章小结 107
编程练习 108
第7篇 高级图形用户界面程序设计第21章 JavaBeans、Bean事件和MVC结构 112
21.1 引言 112
21.2 JavaBeans 112
21.3 bean属性 113
21.3.1 属性的命名方式 113
21.4.1 Java事件模型 114
21.4.2 事件类和事件监听器接口 114
21.3.2 属性和数据域 114
21.4 bean事件 114
21.4.3 源组件 115
21.4.4 监听器组件 115
21.5 创建自定义事件组 116
21.6 创建自定义源组件 118
21.7 应用现存的事件组 124
21.8.1 标准适配器 128
21.8 事件适配器 128
21.8.2 内部类适配器 131
21.8.3 匿名内部类适配器 132
21.9 模型-视图-控件 133
主要术语 139
主要的类和方法 140
本章小结 140
复习题 140
编程练习 140
22.2 Swing容器的结构 144
第22章 容器、布局管理器和边框 144
22.1 引言 144
22.2.1 框架JFrame 145
22.2.2 applet容器JApplet 145
22.2.3 面板JPanel 146
22.3 布局管理器 146
22.3.1 布局管理器CardLayout 147
22.3.2 布局管理器GridBagLayout(可选) 149
22.3.3 不使用布局管理器 153
22.3.4 布局管理器BoxLayout 155
22.3.5 布局管理器OverlayLayout 158
22.3.6 布局管理器SpringLayout 160
22.4 创建自定义布局管理器 162
22.5 滚动窗格JScrollPane 166
22.6 选项卡JTabbedPane 169
22.7 分隔窗格JSplitPane 172
22.8 Swing边框 175
本章小结 182
主要的类和方法 182
复习题 183
编程练习 184
第23章 菜单、工具栏、对话框和内部框架 187
23.1 引言 187
23.2 菜单 187
23.2.1 创建菜单 187
23.2.2 图标、热键和快捷键 189
23.3 弹出式菜单 192
23.4 工具栏JToolBar 194
23.5 使用Action接口处理行为事件 196
23.6 对话框JOptionPane 200
23.6.1 消息对话框 200
23.6.2 确认对话框 201
23.6.3 输入对话框 202
23.6.4 选项对话框 203
23.7 创建自定义对话框 205
23.8 颜色对话框JColorChooser 208
23.9 文件对话框JFileChooser 209
23.10 创建内部框架(可选) 213
主要的类和方法 215
本章小结 216
复习题 217
编程练习 217
第24章 高级Swing组件 221
24.1 引言 221
24.2 Swing的模型-视图-控件结构 221
24.3 微调文本域JSpinner 222
24.3.1 微调文本域模型 224
24.3.2 微调文本域编辑器 226
24.4 列表框JList 229
24.4.1 JList的构造方法、属性和方法 230
24.4.2 列表框布局方向 230
24.4.3 列表框选择模式和列表框选择模型 231
24.4.4 列表模型 234
24.4.5 列表框单元格绘制器 236
24.5 组合框JComboBox 239
24.6 表格JTable 242
24.6.1 JTable的构造方法、属性和方法 243
24.6.2 表格模型 246
24.6.3 表格列模型 247
24.6.4 表格具体列的类TableColumn 248
24.6.5 表头类JTableHeader 248
24.6.6 表格绘制器和编辑器 253
24.6.7 自定义表格绘制器和编辑器 255
24.6.8 表格事件 258
24.7 树JTree 261
24.7.1 JTree的构造方法、属性和方法 262
24.7.2 树模型接口TreeModel及其默认类DefaultTreeModel 264
24.7.3 结点接口TreeNode、MutableTreeNode和类DefaultMutableTreeNode 265
24.7.4 树的路径类TreePath 268
24.7.5 选择接口TreeSelectionModel和类DefaultTreeSelectionModel 269
24.7.6 树结点的绘制和编辑 272
24.7.7 树的事件 274
主要的类和方法 274
本章小结 275
复习题 276
编程练习 277
第8篇 Web程序设计 282
第25章 Java数据库程序设计 282
25.1 引言 282
25.2 关系数据库系统 282
25.2.1 关系结构 283
25.2.2 完整性约束 283
25.3 SQL 285
25.3.2 在关系数据库中使用SQL 286
25.3.1 创建和删除表 286
25.3.3 简单插入、更新和删除 288
25.3.4 简单查询 289
25.3.5 比较运算符和布尔运算符 289
25.3.6 运算符like、between-and和is null 290
25.3.7 列的别名 290
25.3.9 显示互不相同的元组 291
25.3.10 显示有序元组 291
25.3.8 算术运算符 291
25.3.11 联结表 292
25.4 JDBC 293
25.5 预备语句接口PreparedStatement 299
25.6 检索元数据 301
25.7 一个通用的SQL客户程序(可选) 302
25.8 批处理(可选) 307
25.9 可滚动和可更新的结果集(可选) 311
25.10 在JDBC中存储和检索图像(可选) 320
主要的类和方法 323
本章小结 323
主要术语 323
复习题 324
编程练习 325
第26章 Servlet 328
26.1 引言 328
26.2 HTML和公用网关接口 328
26.2.1 静态Web内容 328
26.2.2 动态Web内容与公用网关接口 329
26.2.3 GET方法和POST方法 329
26.3.1 创建servlet 330
26.2.4 从CGI到Java servlet 330
26.3 创建和运行servlet 330
26.3.2 编译servlet 331
26.3.3 启动Tomcat 331
26.3.4 运行servlet 332
26.4 Servlet API 332
26.4.1 接口Servlet 332
26.4.2 GenericServlet类、ServletConfig接口和HttpServlet类 333
26.4.3 ServletRequest接口和HttpServlet-Request接口 334
26.5 创建servlet 335
26.4.4 ServletResponse接口与HttpServlet-Response接口 335
26.6 HTML窗体 337
26.7 servlet中的数据库程序设计 341
26.8 会话跟踪 345
26.8.1 使用隐藏值进行会话跟踪 345
26.8.2 使用cookie进行会话跟踪 349
26.8.3 使用servlet API进行会话跟踪 353
26.9 利用servlet发送图像 357
26.9.1 利用文件发送图像 358
26.9.2 利用Image对象发送图像 359
26.9.3 图像和文本一起发送 361
主要术语 362
主要的类和方法 363
本章小结 363
复习题 364
编程练习 365
27.1 引言 370
27.2 简单的JSP页面 370
第27章 JSP 370
27.3 如何处理JSP页面 371
27.4 JSP脚本构件 371
27.5 预定义变量 373
27.6 JSP指令 375
27.7 在JSP中使用JavaBeans 378
27.8 读取和设置属性 381
27.9 建立属性与输入参数的关联 382
27.10 在JSP网页中转交请求信息 384
JSP预定义变量 389
JSP脚本构件的语法 389
本章小结 390
复习题 390
编程练习 391
第9篇 分布式计算 394
第28章 网络 394
28.1 引言 394
28.2 客户/服务器计算模式 394
28.2.3 通过套接字进行数据传输 395
28.2.2 客户套接字 395
28.2.1 服务器套接字 395
28.3 网络地址类InetAddress 400
28.4 多客户服务 400
28.5 applet客户 403
28.6 发送和接收对象 405
28.7 从Web服务器上读取文件 410
28.8 JEditorPane类(可选) 412
28.9 实例学习:分布式三子棋游戏(可选) 414
28.10 数据报套接字(可选) 424
28.10.1 DatagramPacket类和DatagramSocket类 425
28.10.2 数据报程序设计 425
主要的类和方法 429
本章小结 430
复习题 430
编程练习 431
29.2 RMI基本知识 434
29.2.1 RMI是如何工作的 434
29.1 引言 434
第29章 远程方法调用 434
29.2.2 参数传输 435
29.2.3 RMI命名服务 436
29.3 开发RMI应用程序 436
29.4 RMI与套接字层程序设计 443
29.5 使用RMI开发三层结构的应用程序 443
29.6 RMI的回调功能 446
本章小结 455
主要的类和方法 455
复习题 456
编程练习 456
附录 457
附录A Java关键字 457
附录B ASCII码字符集 458
附录C 运算符优先级表 459
附录D Java修饰符 460
附录E UML图形符号 461
附录F 特殊浮点值 464
附录G 位运算符 465