Java语言程序设计txt,chm,pdf,epub,mobi下载 作者: (美) Y. Daniel Liang 出版社: 机械工业出版社 副标题: 进阶篇(原书第8版) 原作名: Introduction to Java Programming,Eighth Edition 译者: 李娜 出版年: 2011-6 页数: 528 定价: 79.00元 装帧: 平装 丛书: 计算机科学丛书 ISBN: 9787111342366 内容简介 · · · · · ·本书是Java语言的经典教材,畅销多年不衰。本书全面整合了Java的特性,采用“先讲基础”的教学方式,循序渐进地介绍了程序设计基础、面向对象程序设计、GUI程序设计等。另外,本书还全面且深入地覆盖了一些高级主题,包括算法和数据结构、并发、网络、国际化、高级GUI、数据库和Web程序设计等。 本书中文版由《Java语言程序设计 基础篇》和《Java语言程序设计 进阶篇》组成。基础篇对应原书的第1~20章,进阶篇对应原书的第21~37章。 本书特点 基础篇介绍基础内容,进阶篇介绍高级内容,教师可以按需选择理想的教材。 全面整合了Java的特性,并对全书的内容进行了修订和更新,以反映Java程序设计方面的最新技术进展。 提供面向对象程序设计的深入探讨,包含GUI程序设计的基础和扩展实例。 提供大量实例,实例中都包括问题求解的详细步骤。 ... 作者简介 · · · · · ·Y.Daniel Liang 普度大学终身教授,阿姆斯特朗亚特兰大州立大学计算机科学系教授。他所编写的Java教程在美国大学Java课程中采用率极高,同时他还兼任Prentice Hall Java系列丛书的编辑。 目录 · · · · · ·第21章 泛型 121.1 引言 1 21.2 动机和优点 1 21.3 定义泛型类和接口 3 21.4 泛型方法 4 21.5 原始类型和向后兼容 5 · · · · · · () 第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 分析插入排序算法 53 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 实现第Ⅰ步 86 24.7.2 实现第Ⅱ步 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 编程练习题 255 第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 SimpleDateFormat类 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.2 BoxLayout 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 SpinnerListModel 408 35.6.2 SpinnerNumberModel 408 35.6.3 SpinnerDateModel 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和TreeSelection-Model 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 · · · · · · () |
原以为会很枯燥
其涵盖范围广
很有趣
许多都超出了我的认知