具体描述
For courses in Java programming
This package includes Pearson MyLab Programming.
Unparalleled breadth and depth of object-oriented programming concepts
The Deitels?groundbreaking How to Program series offers unparalleled breadth and depth of programming fundamentals, object-oriented programming concepts and intermediate-level topics for further study. Java How to Program, Early Objects, 11th Edition, presents leading-edge computing technologies using the Deitel signature live-code approach, which demonstrates concepts in hundreds of complete working programs. The 11th Edition presents updated coverage of Java SE 8 and new Java SE 9 capabilities, including JShell, the Java Module System, and other key Java 9 topics. [Java How to Program, Late Objects, 11th Edition also is available.]
This package includes Pearson MyLab?Programming,an online learning system designed to engage students and improve results. Pearson MyLab Programming consists of a set of programming exercises correlated to the programming concepts in this book. Through hundreds of practice problems, the system automatically detects errors in the logic and syntax of their code submissions and offers targeted hints that enable students to figure out what went wrongnd why.
MyLab should only be purchased when required by an instructor. Please be sure you have the correct ISBN and Course ID. Instructors, contact your Pearson rep for more information.
本书特色
This title is a Pearson Global Edition. The Editorial team at Pearson has worked closely with educators around the world to include content which is especially relevant to students outside the United States.
Prepare students to meet Java programming challenges
.Rich coverage of programming fundamentals; real-world examples.
.Friendly early classes and objects presentation.
.Use easily with Java™ SE 8 and/or the new Java™ SE 9.
。Java SE 9 content is in easy-to-include-or-omit sections.
。Perfect for instructors who want to stay in Java SE 8 for a while and ease into Java SE 9.
。Perfect for instructors who want to add JShell (Java 9’s interactive Java) to their Java SE 8 or Java SE 9 courses.
.Signature live-code approach teaches programming by presenting the concepts in the context of complete working programs.
.The text’s modular organization is appropriate for introductory and intermediate programming courses, and helps instructors plan their syllabi.
.Comprehensive coverage of concepts and topics:
。Interactive Java through JShell–Java SE 9’s most exciting new pedagogic feature.
。Java 9 topics: Modularity (online), collection factory methods and other language and API enhancements.
。Lambdas, sequential and parallel streams, functional interfaces, immutability.
。JavaFX GUI, 2D and 3D graphics, animation and video.
。Composition vs. Inheritance, dynamic composition.
。Programming to an interface not an implementation.
。Files, input/output streams and XML serialization.
。Concurrency for optimal multi-core performance.
。Other topics: recursion, searching, sorting, generics, generic collections, data structures, optional Swing GUI, multithreading, database (JDBC ™ and JPA).
.Access to the Companion Website (http://www.pearsonhighered.com/deitel) is available with the purchase of a new textbook and provides extra hands-on experience and study aids, including:
。Extensive VideoNotes allow students to view the problem-solving process outside of the classroom–when they need help the most. In the VideoNotes, co-author Paul Deitel patiently explains most of the programs in the book’s core chapters. Students like viewing the VideoNotes for reinforcement of core concepts and for further insights.
。Additional chapters and appendices for advanced courses.
。Evolving Java SE 9 content
。Source code for the book’s examples (also available at deitel.com/books/jhtp11).
Facilitate Learning with Outstanding Applied Pedagogy
.Programming Wisdom: Hundreds of valuable programming tips facilitate learning. Icons throughout the text identify Software Engineering Observations, Good Programming Practices, Common Programming Errors, Error-Prevention Tips, Portability Tips, Performance Tips, and Look-and-Feel Observations(for GUI design). These represent the best the authors have gleaned from a combined nine decades of programming and teaching experience.
.Hundreds of self-review exercises with answers.
.Hundreds of interesting real-world exercises and projects enable students to apply what they’ve learned in each chapter (Instructor Solutions Manual contains answers for most).
.“Making a Difference” exercises encourage students to use computers and the Internet to research and address significant social problems.
.Most of the programming exercises are titled to help instructors select the most appropriate exercises for homework assignments.
编程思维与软件设计原理:构建坚实技术基石 引言:跨越代码表象,直击编程核心 在浩瀚的软件开发领域中,我们常常被各种新兴框架、语言特性以及快速迭代的技术潮流所裹挟。然而,优秀的代码和健壮的系统,其根基往往深植于那些看似“基础”却永不过时的原理之中。本书并非聚焦于某一特定语言的语法细节,而是致力于构建一套全面的、可迁移的编程思维模型和软件设计蓝图。它旨在帮助读者从初学者阶段迈向能够独立设计和实现复杂系统的专业工程师,理解“如何思考”比“如何输入”更为重要。 本书假定读者已经具备基本的计算机科学概念,例如数据结构和算法的初步认识。我们的目标是将这些知识点与实际工程实践相结合,形成一个连贯的知识体系。我们将探索从最底层的逻辑构造到高层架构决策的完整路径。 第一部分:思维的基石——逻辑、抽象与精确表达 第一章:从零开始的计算思维 本章深入探讨计算思维(Computational Thinking)的本质。它不仅仅是编写指令,更是一种系统化的解决问题的方法论。我们将剖析分解(Decomposition)、模式识别(Pattern Recognition)、抽象(Abstraction)和算法设计(Algorithm Design)这四大核心要素。 逻辑的严谨性: 探究布尔代数在程序流程控制中的应用,强调条件判断和循环结构的精确边界条件设置。我们将使用大量的逻辑谜题和微型编程挑战来训练读者的逻辑推导能力,确保每一个“如果-那么-否则”的决策都是无懈可击的。 状态与过程管理: 程序本质上是对状态的转换。本章将细致分析程序执行过程中的内存状态变化,如何通过变量和数据结构来追踪和管理这些状态,避免产生不可预知的副作用。我们将讨论副作用(Side Effects)的风险,并介绍如何最小化它们。 第二章:抽象的力量与信息隐藏 抽象是人类认知世界和构建复杂系统的最有效工具。本章将重点讨论不同层次的抽象:从简单的数据类型封装到复杂的模块化设计。 数据抽象的层次: 不仅仅是定义一个类,而是理解如何将复杂数据结构封装成一个稳定的、用户友好的接口。我们将研究抽象数据类型(ADT)的设计原则,以及如何通过定义清晰的契约(Contract)来隐藏实现细节。 接口与实现的分离: 这是所有工程化系统的核心。本章将通过案例分析,展示如何设计松耦合的接口,使系统在内部实现发生变化时,外部依赖不受影响。讨论在不同粒度(函数、模块、服务)上应用这一原则的实践。 第三章:算法效率的量化分析 对于任何一个规模化系统,效率是不可回避的考量。本章将超越简单的代码实现,专注于算法效率的科学评估。 渐进分析(Asymptotic Analysis): 深入讲解大O、大Omega和Theta记号的含义,以及它们如何帮助我们预测代码在数据规模增长时的表现。我们将对比分析常见搜索、排序算法的时间复杂度和空间复杂度。 性能的现实考量: 虽然理论复杂度很重要,但本章也会讨论实际的常数因子、缓存效应(Cache Effects)以及 I/O 瓶颈对整体性能的影响。引入基准测试(Benchmarking)的基本方法论,教导读者如何进行有意义的性能度量。 第二部分:构建模块——结构化与组织化设计 第四章:结构化编程范式的深化 结构化编程是现代软件的基础,但其应用需要技巧。本章旨在将结构化概念扩展到大型项目组织中。 控制流的优雅管理: 除了顺序、选择、循环,我们将探讨如何使用更高级的控制结构(如迭代器、生成器)来替代复杂的嵌套,提高代码的可读性和可维护性。重点讨论goto语句的现代替代方案,以及如何通过函数式思维来简化流程控制。 模块化与内聚性/耦合度: 介绍软件设计中衡量模块质量的关键指标——内聚性(Cohesion)和耦合度(Coupling)。通过清晰的图示和反例,阐述如何设计高内聚、低耦合的组件,这是实现并行开发和独立维护的前提。 第五章:数据结构的选择与应用艺术 数据结构是数据的组织方式,直接决定了算法的效率和系统的表现。 线性与非线性结构的高级应用: 不仅限于数组和链表,我们将深入探讨树(如平衡二叉搜索树、B-Tree的原理)、图(Graph)的遍历算法(BFS/DFS)及其在网络、路径规划中的实际映射。 集合与映射的底层机制: 详细解析哈希表(Hash Table)的冲突解决策略、负载因子管理,以及它们如何在 O(1) 平均时间复杂度下实现高效查找。讨论跳跃列表(Skip List)等替代方案的适用场景。 第六章:错误处理与健壮性设计 一个健壮的系统必须能够优雅地处理意料之外的输入和运行时的故障。 异常机制的正确使用: 探讨异常(Exceptions)作为控制流的一种机制时的利弊。区分“预期性错误”和“不可恢复性错误”,并确定何时应该使用返回码,何时应该抛出异常。 防御性编程(Defensive Programming): 强调对所有外部输入和内部不确定状态进行验证。介绍断言(Assertions)在开发阶段捕获逻辑错误的价值,以及如何设计日志记录和错误报告系统以进行事后分析。 第三部分:面向未来的设计——范式与演进 第七章:函数式编程思想的融入 虽然不局限于某一特定语言,但理解函数式编程(FP)的原则能够极大地提升代码的清晰度和可测试性。 纯函数与不可变性: 阐述纯函数(Pure Functions)的概念,即给定相同的输入,永远产生相同的输出且无副作用。探讨不可变数据结构(Immutability)如何从根本上消除并发编程中的竞态条件问题。 高阶函数与数据流: 学习如何使用高阶函数(如映射、过滤、折叠)来清晰地表达数据转换的流程,将命令式代码转化为更具声明性的数据管道。 第八章:设计模式:解决常见问题的成熟方案 设计模式是前辈工程师在解决重复性架构问题时总结出的经验结晶。本章将聚焦于模式背后的“为什么”,而非仅仅是“怎么写”。 创建型模式(Creational Patterns): 深入解析工厂(Factory)、单例(Singleton)模式在资源管理和对象实例化控制中的作用。讨论其优缺点及现代替代方案。 结构型模式(Structural Patterns): 探讨适配器(Adapter)、装饰器(Decorator)等如何灵活地组合对象和类,实现系统功能的扩展而无需修改现有代码。 行为型模式(Behavioral Patterns): 分析策略(Strategy)、观察者(Observer)模式如何解耦对象间的依赖关系,使系统行为更具可配置性和响应性。 第九章:系统演化与技术债务管理 软件系统是活的实体,必须能够适应不断变化的需求。 重构的艺术与科学: 介绍如何识别“坏味道”(Code Smells),并系统性地、小步快跑地进行代码重构,以保持代码库的健康状态。强调重构必须在测试覆盖的保护下进行。 技术债务的量化与偿还: 讨论技术债务的来源(故意或无意),以及如何评估其对未来开发速度的影响。提出在项目规划中纳入“技术债务偿还周期”的建议。 结论:终身学习的实践路径 本书的最终目标是培养一种持续学习和批判性思考的习惯。技术领域的发展是不可逆的,掌握了底层原理和高级设计哲学,读者便能迅速吸收新的工具和语言,真正做到“授人以渔”。掌握本书所涵盖的思维框架,将使您有能力驾驭任何未来的技术挑战,构建出清晰、高效、可维护的软件系统。