《Java语言程序设计 进阶篇 原书第8版》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)梁勇著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2011
  • ISBN:9787111342366
  • 页数:507 页
图书介绍:本书是Java语言的经典教材,畅销多年不衰。本书采用“先讲基础”的教学方式,循序渐进地介绍了程序设计基础、问题解决、面向对象程序设计、图形用户界面设计、异常处理、I/O和递归等。另外本书还全面且深入地覆盖了一些高级主题,包括数据结构、并发、网络、国际化、高级GUI、Web程序设计等。

第21章 泛型 1

21.1引言 1

21.2动机和优点 1

21.3定义泛型类和接口 3

21.4泛型方法 4

21.5原始类型和向后兼容 5

21.6通配泛型 6

21.7消除泛型和对泛型的限制 8

21.8实例学习:泛型矩阵类 10

关键术语 14

本章小结 14

复习题 15

编程练习题 16

第22章Java集合框架 17

22.1引言 17

22.2集合 17

22.3 Collection接口和Abstract-Collection类 18

22.4规则集 19

22.4.1散列集HashSet 19

22.4.2链式散列集LinkedHashSet 23

22.4.3树形集TreeSet 23

22.5比较器接口Comparator 25

22.6线性表 26

22.7线性表和集合的静态方法 30

22.8规则集和线性表的性能 32

22.9向量类Vector和栈类Stack 33

22.10队列和优先队列 35

22.11图 37

22.12单元素和不可变的集合和图 42

关键术语 42

本章小结 42

复习题 43

编程练习题 46

第23章 算法效率 49

23.1引言 49

23.2大O符号 49

23.3举例:确定大O 50

23.4分析算法的时间复杂度 52

23.4.1分析二分查找算法 52

23.4.2分析选择排序算法 52

23.4.3分析插入排序算法 52

23.4.4分析汉诺塔问题 53

23.4.5比较常用的增长函数 53

23.5实例学习:找出斐波那契数 54

23.6实例学习:求最大公约数 56

23.7实例学习:找出素数 59

23.8实例学习:最近的点对 64

23.9预览其他算法 66

关键术语 66

本章小结 66

复习题 67

编程练习题 68

第24章 排序 71

24.1引言 71

24.2冒泡排序 71

24.3归并排序 73

24.4快速排序 76

24.5堆排序 79

24.5.1对堆排序 79

24.5.2添加一个新结点 80

24.5.3删除根结点 80

24.5.4 Heap类 81

24.5.5使用Heap类排序 83

24.5.6堆排序的时间复杂度 84

24.6桶排序和基数排序 84

24.7外部排序 85

24.7.1实现第1步 86

24.7.2实现第1 1步 87

24.7.3合并两步 89

24.7.4外部排序分析 91

关键术语 92

本章小结 92

复习题 92

编程练习题 93

第25章 线性表、栈、队列和优先队列 95

25.1引言 95

25.2线性表的一般特性 95

25.3数组线性表 98

25.4链表 102

25.4.1结点 103

25.4.2 LinkedList类 104

25.4.3实现MyLinkedList 105

25.4.4 MyArrayList和MyLinkedList 112

25.5链表的变体 112

25.6栈和队列 113

25.7优先队列 116

25.8实例学习:计算表达式 117

本章小结 121

复习题 121

编程练习题 122

第26章 二叉查找树 125

26.1引言 125

26.2二叉查找树 125

26.2.1表示二叉查找树 126

26.2.2查找一个元素 127

26.2.3在BST中插入一个元素 127

26.2.4树的遍历 128

26.2.5 BinaryTree类 129

26.3删除BST中的一个元素 137

26.4 Tree的可视化 141

26.5迭代器 144

26.6实例学习:数据压缩 146

关键术语 150

本章小结 150

复习题 150

编程练习题 150

第27章 图及其应用 154

27.1引言 154

27.2基本的图术语 155

27.3图的表示 156

27.3.1顶点的表示 156

27.3.2边的表示:边的数组 157

27.3.3边的表示:Edge对象 157

27.3.4边的表示:邻接矩阵 157

27.3.5边的表示:邻接线性表 158

27.4图建模 159

27.5图的可视化 168

27.6图的遍历 171

27.7深度优先搜索 171

27.7.1深度优先搜索算法 171

27.7.2深度优先搜索的实现 172

27.7.3深度优先搜索的应用 174

27.8 广度优先搜索 174

27.8.1广度优先搜索算法 174

27.8.2广度优先搜索的实现 175

27.8.3广度优先搜索的应用 177

27.9实例学习:九个硬币反面的问题 177

27.10实例学习:骑士旅行问题 181

关键术语 187

本章小结 187

复习题 188

编程练习题 188

第28章 加权图及其应用 193

28.1引言 193

28.2加权图的表示 193

28.2.1加权边的表示:边数组 193

28.2.2加权邻接矩阵 194

28.2.3优先邻接链表 194

28.3 WeightedGraph类 195

28.4最小生成树 201

28.4.1最小生成树算法 201

28.4.2 MST算法的实现 203

28.5寻找最短路径 206

28.5.1最短路径算法 206

28.5.2最短路径算法的实现 209

28.6实例学习:加权的九枚硬币反面问题 212

关键术语 215

本章小结 215

复习题 215

编程练习题 216

第29章 多线程 220

29.1引言 220

29.2线程的概念 220

29.3创建任务和线程 221

29.4 Thread类 223

29.5举例:闪烁文本 225

29.6 GUI事件分发线程 226

29.7实例学习:带音频的时钟 227

29.8线程池 230

29.9线程同步 232

29.9.1 synchronized关键字 234

29.9.2同步语句 234

29.10利用加锁同步 235

29.11线程间协作 236

29.12实例学习:生产者/消费者 240

29.13阻塞队列 242

29.14信号量 244

29.15避免死锁 245

29.16线程的状态 245

29.17同步集合 246

29.18 SwingWorker 247

29.19使用JProgressBar显示进度 250

关键术语 253

本章小结 253

复习题 253

编程练习题 250

第30章 网络 258

30.1引言 258

30.2客户端/服务器计算 258

30.2.1服务器套接字 259

30.2.2客户端套接字 259

30.2.3通过套接字进行数据传输 260

30.2.4客户端/服务器举例 260

30.3 InetAddress类 264

30.4服务多个客户 265

30.5 applet客户端 268

30.6发送和接收对象 270

30.7从Web服务器上读取文件 274

30.8 JEditorPane类 276

30.9实例学习:分布式井字游戏 278

本章小结 288

复习题 289

编程练习题 289

第31章 国际化 292

31.1引言 292

31.2 Locale类 292

31.3显示日期和时间 294

31.3.1 TimeZone类 294

31.3.2 DateFormat类 294

31.3.3 Simple DateFormat类 295

31.3.4 DateFormatSymbols类 295

31.3.5举例:显示国际时钟 296

31.3.6举例:显示日历 299

31.4格式化数字 304

31.4.1普通数字格式 304

31.4.2货币格式 305

31.4.3百分比格式 305

31.4.4转换数字 306

31.4.5 DecimalFormat类 306

31.4.6举例:格式化数字 306

31.5资源包 309

31.6字符编码 315

关键术语 316

本章小结 316

复习题 317

编程练习题 317

第32章JavaBeans和bean事件 320

32.1引言 320

32.2 JavaBeans 320

32.3 bean属性 321

32.3.1属性的命名方式 321

32.3.2属性和数据域 321

32.4 Java事件模型回顾 322

32.4.1事件类和事件监听器接口 322

32.4.2源组件 323

32.4.3监听器组件 323

32.5创建自定义源组件 324

32.6创建自定义事件组 328

关键术语 332

本章小结 332

复习题 332

编程练习题 333

第33章 容器、布局管理器和边框 336

33.1引言 336

33.2 Swing容器的结构 336

33.2.1 JFrame 337

33.2.2 JApplet 337

33.2.3 JPanel 338

33.3布局管理器 338

33.3.1 CardLayout 339

33.3.2BoxLayout 341

33.3.3使用null布局管理器 344

33.4创建自定义布局管理器 345

33.5 JScrollPane 350

33.6 JTabbedPane 353

33.7 JSplitPane 355

33.8 Swing边框 357

本章小结 364

复习题 364

编程练习题 365

第34章 菜单、工具栏和对话框 368

34.1引言 368

34.2菜单 368

34.2.1创建菜单 368

34.2.2图标、热键和快捷键 370

34.2.3举例:使用菜单 371

34.3弹出式菜单 373

34.4 JToolBar 375

34.5使用Action接口处理动作事件 377

34.6 JOptionPane对话框 380

34.6.1消息对话框 381

34.6.2确认对话框 382

34.6.3输入对话框 382

34.6.4选项对话框 383

34.6.5举例:创建JOptionPane对话框 384

34.7创建自定义对话框 386

34.8 JColorChooser 389

34.9 JFileChooser 390

本章小结 394

复习题 395

编程练习题 395

第35章MVC和Swing模型 398

35.1引言 398

35.2 MVC 398

35.3 MVC的变体 404

35.4 Swing的模型一视图一控件体系结构 404

35.5 JSpinner 406

35.6微调文本域模型和编辑器 407

35.6.1 Spin nerListModel 408

35.6.2 SpinnerNumberModel 408

35.6.3 Spin ne rDateModel 409

35.6.4微调文本域编辑器 410

35.6.5举例:使用微调文本域模型和编辑器 410

35.7 JList及其模型 412

35.7.1 JList的构造方法、属性和方法 413

35.7.2列表框布局方向 413

35.7.3列表框选择模式和列表框选择模型 414

35.7.4举例:列表框属性演示 414

35.8列表模型 416

35.9列表框单元格绘制器 419

35.10 JComboBox及其模型 422

关键术语 425

本章小结 425

复习题 426

编程练习题 426

第36章JTable和JTree 430

36.1引言 430

36.2 JTable 430

36.3表格模型和表格列模型 435

36.4自动排序和过滤 438

36.5实例学习:修改表格的行和列 440

36.6表格绘制器和编辑器 445

36.7自定义表格绘制器和编辑器 447

36.8表格模型事件 449

36.9 JTree 452

36.10 TreeModel和DefaultTreeModel 455

36.11 TreeNode、 MutableTreeNode和DefaultMutableTreeNode 457

36.12 TreePath和TreeSelectionModel 460

36.13实例学习:修改树 462

36.14树结点的绘制和编辑 465

36.15树事件 467

本章小结 467

复习题 467

编程练习题 468

第37章Java数据库程序设计 471

37.1引言 471

37.2关系数据库系统 471

37.2.1关系结构 472

37.2.2完整性约束 473

37.3 SQL 474

37.3.1在MySQL上创建用户账户 475

37.3.2创建数据库 476

37.3.3创建和删除表 476

37.3.4简单插入、更新和删除 477

37.3.5简单查询 478

37.3.6比较运算符和布尔运算符 479

37.3.7运算符like、 between-and和is null 479

37.3.8 列的别名 480

37.3.9算术运算符 480

37.3.10显示互不相同的元组 480

37.3.11显示有序元组 481

37.3.12联结表 481

37.4 JDBC 482

37.4.1使用JDBC开发数据库应用程序 483

37.4.2通过Java applet访问数据库 486

37.5 PreparedStatement 488

37.6 CallableStatement 491

37.7获取元数据 493

37.7.1数据库元数据 493

37.7.2获取数据库表 494

37.7.3结果集元数据 495

关键术语 496

本章小结 496

复习题 497

编程练习题 498

附录A Java关键字 500

附录B ASCII码字符集 501

附录C运算符优先级表 502

附录D Java修饰符 503

附录E特殊浮点值 504

附录F数系 505