《Java高级编程 第2版》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:(美)Brett Spell著;董梁,刘艳译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2006
  • ISBN:7302139091
  • 页数:597 页
图书介绍:本书介绍Java编程的知识和技巧。

1.1 Java体系结构 1

第1章 Java深入介绍 1

1.2 Java虚拟机 3

1.2.1 JVM的不同实现 4

1.2.2 JVM作为运行时执行环境 4

1.2.3 JVM运行时数据区 5

1.2.4 垃圾收集器 7

1.2.5 JVM:加载、链接和初始化 7

1.2.6 执行字节码 9

1.3 Java类文件格式 11

1.4.2 JavaAPI 13

1.4 Java编程语言与API 13

1.4.1 Java编程语言 13

1.5 JVM配套的Java实用工具 14

1.5.1 Java编译器 14

1.5.2 Java解释器 15

1.5.3 Java类反汇编程序 16

1.6 小结 16

第2章 库、类和方法的设计 19

2.1 库的设计 19

2.2 类的设计 20

2.2.1 松耦合 21

2.2.2 强聚合 35

2.2.3 封装 38

2.2.4 不变对象与不变字段 41

2.2.5 重写对象方法 42

2.3 方法设计 48

2.3.1 参数传递 49

2.3.2 方法命名 52

2.3.3 最小化代码重复 53

2.3.4 变量参数 55

2.3.5 使用异常 57

2.3.6 断言 75

2.3.7 枚举 77

2.4 小结 79

第3章 在应用程序中使用线程 81

3.1 Java线程 81

3.2 创建线程 83

3.3 使用线程的缺点 85

3.3.1 初始启动变慢 85

3.3.2 资源利用 85

3.3.3 复杂性增加 85

3.4 线程管理 87

3.5 共享资源的使用同步 91

3.5.1 同步方法和同步代码块的嵌套调用 94

3.5.2 同步代码块与同步方法 94

3.5.3 死锁 95

3.6 线程优先级 98

3.7 监控程序线程 99

3.8 在应用程序中加入线程 101

3.9 线程控制 109

3.9.1 线程启动 111

3.9.2 线程休眠 112

3.9.3 线程挂起 116

3.9.4 线程恢复 119

3.9.5 线程停止 120

3.9.6 线程中断 121

3.10 完成DownloadManager 123

3.11 线程中的过时方法 126

3.12 DownloadFiles类 127

3.13 未捕捉的异常 132

3.14 自愿放弃处理器 133

3.15 并发工具 135

3.16 小结 136

第4章 集合 137

4.1.1 Java 2/Java 1.2 139

4.1 集合演变 139

4.2 集合类与接口 140

4.1.2 Java 5/Java 1.5 140

4.2.1 Collection接口 141

4.2.2 List 145

4.2.3 ListIterator 148

4.2.4 ArrayList 149

4.2.5 LinkedList 150

4.2.6 Vector 151

4.2.7 Stack 151

4.2.8 Set 152

4.2.11 LinkedHashSet 155

4.2.12 TreeSet 155

4.2.9 HashSet 155

4.2.10 构造函数 155

4.2.13 EnumSet 159

4.2.14 Map 160

4.2.15 HashMap 162

4.2.16 LinkedHashMap 163

4.2.17 TreeMap 163

4.2.18 EnumMap 163

4.2.19 IdentityHashMap 163

4.2.20 WeakHashMap 164

4.2.22 Queue 165

4.2.21 ConcurrentHashMap 165

4.2.23 PriorityQueue 166

4.2.24 PriorityBlockingQueue 166

4.2.25 ArrayBlockingQueue 166

4.2.26 LinkedBlockingQueue 166

4.2.27 ConcurrentLinkedQueue 167

4.2.28 SynchronousQueue 167

4.2.29 DelayQueue 167

4.3 集合使用技巧 168

4.3.2 引用接口代替引用实现 169

4.3.1 浅副本和深副本 169

4.4 小结 170

第5章 布局管理器 171

5.1 布局管理器与GUI构造 171

5.2 CardLayout 173

5.2.1 构造CardLayout 173

5.2.2 子组件尺寸 174

5.2.3 子组件位置 174

5.3.2 约束 175

5.3.1 构造FlowLayout 175

5.3 FlowLayout 175

5.2.4 尺寸调整 175

5.2.5 容器尺寸 175

5.3.3 子组件尺寸 176

5.3.4 子组件位置 176

5.3.5 尺寸调整 178

5.3.6 容器尺寸 178

5.4 GridLayout 179

5.4.1 构造GridLayout 180

5.4.3 子组件尺寸 182

5.4.4 子组件位置 182

5.4.2 约束 182

5.4.5 尺寸调整 183

5.4.6 容器尺寸 183

5.5 BorderLayout 183

5.5.1 构造BorderLayout 185

5.5.2 约束 185

5.5.3 子组件尺寸 185

5.5.4 子组件位置 186

5.5.5 尺寸调整 186

5.5.6 容器尺寸 187

5.6 GridBagLayout 187

5.6.2 约束 190

5.6.1 构造GridBagLayout 190

5.6.3 子组件尺寸 210

5.6.4 子组件位置 211

5.6.5 尺寸变化 211

5.6.6 容器尺寸 212

5.7 BoxLayout 212

5.7.1 对齐值、上升和下降 212

5.7.2 构造BoxLayout 216

5.7.3 约束 216

5.7.4 子组件尺寸 216

5.7.6 尺寸缩放 218

5.7.5 子组件位置 218

5.7.7 容器尺寸 219

5.7.8 Swing中的Box类 219

5.8 布局管理器的使用准则 222

5.8.1 组合使用布局管理器 222

5.8.2 不使用布局管理器的绝对定位 224

5.8.3 不可见组件 224

5.8.4 添加组件时指定索引 225

5.9 创建自定义布局管理器 227

5.9.1 LayoutManager2接口方法 228

5.9.2 LayoutManager方法 230

5.9.3 使用自定义布局管理器 234

5.10 小结 235

第6章 使用Swing的JTable组件 237

6.1 数据模型 238

6.2 使用含有JTable组件的JScrollPane类 242

6.3 JTable组件的面向列设计 245

6.4 调整表格尺寸 245

6.5 调整列的尺寸 246

6.5.1 AUTO_RESIZE_OFF 246

6.5.2 AUTO_RESIZE_NEXT_COLUMN 246

6.5.4 AUTO_RESIZE_LAST_COLUMN 247

6.5.3 AUTO_RESIZE_SUBSEQUENT_COLUMNS 247

6.5.5 AUTO_RESIZE_ALL_COLUMNS 248

6.6 单元格绘制 248

6.6.1 创建定制的绘制器 249

6.6.2 JTable组件的默认绘制器 253

6.7 编辑表格单元格 255

6.8 表格选项设置 261

6.8.1 行、列、以及单元格选项模式的结合 262

6.8.2 列表选项模式 262

6.8.3 选项模式的结合 263

6.8.4 用编程方式设置选项 266

6.9.1 绘制标题 267

6.9 表格的标题 267

6.9.2 工具提示及绘制器的重新使用 269

6.9.3 JTableHeader 270

6.9.4 创建行标题 275

6.10 对表格按行进行排序 279

6.10.1 对列选项进行动态排序 281

6.10.2 使用比较 285

6.11 添加和删除表格行 287

6.12 显示特定的表格行 289

6.13 小结 290

第7章 使用Swing的JTree组件 291

7.1 JTree术语简介 292

7.2 创建JTree实例 293

7.2.1 TreeModel 296

7.2.2 创建树节点 297

7.3 TreePath类 309

7.4.4 treeStructureChanged()方法 311

7.4.3 treeNodesRemoved()方法 311

7.5 TreeModelEvent类 311

7.4.2 treeNodesInserted()方法 311

7.4.1 treeNodesChanged()方法 311

7.4 TreeModelListener接口 311

7.5.1 getTreePath()和getPath()方法 312

7.5.2 getChildren()方法 312

7.5.3 getChildIndices()方法 312

7.6 DefaultTreeModel类 312

7.7 绘制树节点 314

7.8 编辑树的节点 320

7.8.1 DefaultTreeCellEditor和DefaultCellEditor类 323

7.8.2 创建自定义编辑器 324

7.8.3 限制编辑某些节点 326

7.9 定制分支节点句柄 327

7.10 线型与Java或Metal外观 328

7.11 节点选择 330

7.11.1 选择方式 330

7.11.2 TreeSelectionListener类 332

7.11.3 TreeSelectionEvent 333

7.11.4 JTree中的选择方法 333

7.12 折叠和展开节点 335

7.13 小结 338

8.1 剪贴板:剪切和复制数据的存储位置 340

8.1.1 系统剪贴板 340

8.1.3 Transferable 341

8.1.2 剪贴板 341

8.1.4 ClipboardOwner实现 342

8.1.5 DataFlavor的使用 343

8.2 存取与检索串行化的Java对象 345

第8章 添加剪切和粘贴功能 350

8.3 在Java程序和本地应用程序之间传输数据 357

8.4 编写任意的二进制数据 357

8.5 小结 362

第9章 添加拖放功能 363

9.1 拖放操作的类型 363

9.2 预定义光标 364

9.3.1 添加对释放操作的支持 365

9.3 从本地应用程序执行文件选择释放 365

9.3.2 添加对拖动操作的支持 374

9.4 执行本地传输 385

9.4.1 本地对象DataFlavor的概念 386

9.4.2 处理引用传输 387

9.5 执行链接/引用操作 389

9.6 在Java程序和本地应用程序之间传输 390

9.7 传输文本数据 392

9.7.1 在Java程序和本地应用程序之间传输文本数据 392

9.7.2 为文本数据创建一个新的Transferable 394

9.8 小结 396

第10章 打印 397

10.1 定位打印服务 398

10.1.1 DocFlavor 399

10.1.2 选择正确的打印机 401

10.1.3 AttributeSet 402

10.1.4 Attribute类 402

10.1.5 Attribute Roles 403

10.1.6 接口和实现 403

10.1.7 用户界面的打印机选择 406

10.3 定义打印文档 407

10.2 创建打印任务 407

10.4 初始化打印 408

10.5 监控打印任务 408

10.5.1 监控属性变化 409

10.5.2 取消打印任务 410

10.6 Service-Formatted打印的概念 411

10.6.1 支持类 412

10.6.2 打印应用程序示例 416

10.7 小结 422

第11章 JDBC介绍 423

11.1 SQL标准和JDBC版本 424

11.2 JDBC驱动器 425

11.3.1 JDBC的URL格式 428

11.3 获得数据库连接 428

11.3.2 连接 429

11.3.3 通过数据源获得连接(2.x选择包) 429

11.3.4 DatabaseMetaData接口 432

11.4 Statement 440

11.4.1 executeUpdata()方法 441

11.4.2 executeQuery()方法 441

11.4.3 execute()方法 441

11.4.5 PreparedStatement类 442

11.4.4 addBatch()和executeBatch()方法 442

11.4.6 CallableStatement 445

11.4.7 ParameterMetaData类 446

11.5 JDBC数据类型 447

11.5.1 ARRAY 448

11.5.2 BLOB、CLOB 449

11.5.3 DATALINK 449

11.5.4 DATE、TIME、TIMESTAMP 450

11.5.5 DISTINCT 450

11.5.6 STRUCT 450

11.6 ResultSet类 451

11.5.9 OTHER 451

11.5.8 JAVA_OBJECT 451

11.5.7 REF 451

11.6.1 单向前与滚动(滚动类型) 452

11.6.2 只读与可更新(并发模式) 452

11.6.3 更新敏感性 452

11.6.4 Holdability 453

11.6.5 选择ResultSet属性 453

11.6.6 使用ResultSet 454

11.7 ResultSetMetaData 458

11.8 RowSet 459

11.9 事务 460

11.9.1 保存点 463

11.9.2 只读事务 464

11.9.3 分布式事务 466

11.10 连接池 466

11.11 错误和警告 468

11.11.1 SQLException 468

11.11.2 SQLWarning 471

11.12 调试功能 472

11.13 释放资源 473

11.14 小结 473

第12章 应用程序国际化 475

12.1 地区 476

12.2 资源绑定 477

12.3 区分地区格式与分析 483

12.3.1 日期的格式化和分析 484

12.3.2 时间的格式化及分析 486

12.3.3 数值的格式化及分析 487

12.4 MessageFormat 489

12.4.1 指定地区 491

12.4.2 指定格式化对象 492

12.5 ChoiceFormat 493

12.6 分析文本数据 495

12.7 文本比较与排序 501

12.7.1 Collator强度 502

12.7.2 分解模式 503

12.8 应用程序国际化 504

12.9 运行时修改Locale选项 515

12.10 native2ascii 522

12.11 小结 523

第13章 XML的使用 525

13.1 XML与HTML 526

13.1.1 描述数据 527

13.1.2 形式合理的文档 528

13.2 何时及为何使用XML 531

13.3 创建XML文档 532

13.3.1 root元素 533

13.3.2 XML文档的组成部分 534

13.4 分析及有效性 535

13.4.1 使用JAXP中的DOM实现进行分析 535

13.4.2 全面研究DOM文档 550

13.4.3 编辑DOM文档 555

13.5 转换XML文档 561

13.6 小结 569

第14章 添加注解 571

14.1 注解的使用 572

14.1.1 重写 574

14.1.2 SuppressWarnings注解 575

14.2 创建定制注解 579

14.2.1 Target注解 581

14.2.2 Retention注解 582

14.2.3 Documented注解 584

14.2.4 Inherited注解 585

14.3 替换外部元数据 587

14.4 注解处理工具的使用 590

14.4.1 AnnotationProcessorFactory接口 590

14.4.2 Declaration接口 593

14.4.3 产生Side文件 595

14.5 小结 597