This Book (11E) |
What's New |
Previous Book (10E) |
Global Changes |
- The book's title is changed to Introduction to Java Programming, Comprehensive,
Includes Data Structures to reflect reflect the fact that many of our instructors
use this book in a data structures course. The book uses a practical approach to
introduce design, implement, and use data structures and covers all topics in a
typical data structures course.
Additionally, it provides bonus chapters that covers advanced data structures
such as 2-4 trees, B-trees, and red-black trees.
- Updated to Java 8. Examples are improved and
simplified by using the new features in Java 8.
- The default and static methods are introduced
for interfaces in Chapter 13.
- The GUI chapters are updated to JavaFX 8. The
examples are revised. The user interfaces in the
examples and exercises are now resizable and displayed
in the center of the window.
- Inner classes, anonymous inner classes, and
lambda expressions are covered using practical examples
in Chapter 15.
- More examples and exercises in the data structures
chapters use Lambda expressions to simplify coding.
- The forEach method is introduced in Chapter
20 as a simple alternative to the foreach loop for
applying an action to each element in a collection.
-
Use the default methods for interfaces in Java 8 to redesign MyList, MyArrayList,
MyLinkedList, Tree, BST, AVLTree, MyMap, MyHashMap, MySet, MyHashSet, Graph, UnweightedGraph, and WeightedGraph in Chapters 24-29.
- Chapter 30 is brand new to introduce aggregate
operations for collection streams.
- The companion Website has been redesigned with
new interactive quiz, checkpoint, animations, and
live coding.
- More than 200 additional programming exercises
with solutions are provided to the instructor in
the Companion Website. These exercises are not printed
in the text.
- The CheckPoint questions are renumbered by sections
so that they can be easily identified.
|
|
Chapter 1 Introduction
to Computers, Programs, and Java |
- Sections 1.2-1.5 are updated with new information.
- Since applets are removed in Java, Section
1.5 is revised.
- Both print and println statements are covered
in Section 1.7.
|
Chapter 1 |
Chapter 2 Elementary
Programming |
- Add a note on the warning for closing input
from IDEs.
- Use underscores to improve readabilities in
a number literal in Section 2.10.1.
- System.nanoTime() is introduced in Section 2.12
to return the current time in nano seconds.
|
Chapter 2 |
Chapter 3 Selections |
- Add several new check point questions.
- Use the term conditional operator in Section
3.14.
|
Chapter 3 |
Chapter 4 Mathematical
Functions, Characters, and Strings |
- The terms of token-based input and line-based
input are introduced in Section 4.4.5. An important
note tells students not to mix token-based input
with line-based input to avoid input errors.
- Displaying numbers with comma separators and
display numbers with leading zeros are now covered
in Section 4.6.
|
Chapter 4 |
Chapter 5 Loops |
- A large section 5.2 in the 10E is divided into
four smaller new sections 5.2, 5.3, 5.4, and 5.5
- New figures for Figures 5.1, 5.2, and 5.3.
|
Chapter 5 |
Chapter 6 Methods |
|
Chapter 6 |
Chapter 7 Single-Dimensional
Arrays |
- Pre- and post-conditions are discussed.
|
Chapter 7 |
Chapter 8 Multidimensional
Arrays |
|
Chapter 8 |
Chapter 9 Objects and
Classes |
- Long name for various Circle classes are simplfied
using Circle. For example, CircleWithPrivateDataFields
is now called Circle.
- The new SecureRandom is introduced in Section
9.6.2.
- Section 9.14 on the this keyword is revised.
|
Chapter 9 |
Chapter 10 Thinking
in Objects |
- Revised the composition relationship in Secton
10.4.2.
- New exercises 10.14-10.15.
- Removed the section on GuessBirthday class.
|
Chapter 10 |
Chapter 11 Inheritance
and Polymorphism |
- Long name for various Circle classes are simplfied
using Circle. For example, SimpleGeometricObject
is now called GeometricObject.
- The terms subtype and supertype are introduced
early in Section 11.2.
|
Chapter 11 |
Chapter 12 Exception
Handling and Text I/O |
- Token-based input vs. line-based input is discussed
in Section 12.11.4.
|
Chapter 12 |
Chapter 13 Abstract
Classes and Interfaces |
- Revised Listing 13.6.
- Revised Listing 13.7.
- introduced default and static methods in interfaces.
- Revised Listing 13.11.
|
Chapter 13 |
Chapter 14 JavaFX Basics |
- Updated to JavaFX 8.
- The Group class is introduced early on.
- Overriding setWidth and setHeight methods to
set proper size for the pane.
- Every example in this section is revised to
update the code to JavaFX 8.
|
Chapter 14 |
Chapter 15 Event-Driven
Programming and Animations |
- Updated to JavaFX 8.
- Teaching inner classes, anonymous inner classes,
lambda expressions using practical examples.
- Revised the section on lambda expressions using new examples.
- Section 15.13 displays a US map using coordinates.
- Every example in this section is revised to
update the code to JavaFX 8.
|
Chapter 15 |
Chapter 16 JavaFX UI
Controls |
- Updated to JavaFX 8.
- Every example in this section is revised to
update the code to JavaFX 8.
|
Chapter 16 |
Chapter 17 Binary I/O |
- The detailed description on UTF is moved to Supplement III.Z.
|
Chapter 17 |
Chapter 18 Recursion |
|
Chapter 18 |
Chapter 19 Generics |
|
Chapter 19 |
Chapter 20 Lists, Stacks,
Queues, and Priority Queues |
- Add the forEach method in the Iterable interface
in Figure 20.1.
- Section 20.4 is new to introduce the forEach
method.
- Section 20.5 is expanded with additional examples
for using the Comparator interface and lambda expressions
for Comparator.
|
Chapter 20 |
Chapter 21 Sets and
Maps |
- Use the forEach method to simplify the code
in several examples.
|
Chapter 21 |
Chapter 22 Developing
Efficient Algorithms |
|
Chapter 22 |
Chapter 23 Sorting |
|
Chapter 23 |
Chapter 24 Implementing
Lists, Stacks, Queues, and Priority Queues |
- Redesign the MyList interface to extend Collection.
- Use the forEach method to simplify the code
in several examples.
- Exercises are revised.
|
Chapter 24 |
Chapter 25 Binary Search
Trees |
- Redesign the Tree interface to extend Collection.
- Use the forEach method to simplify the code
in several examples.
- Exercises are revised.
|
Chapter 25 |
Chapter 26 AVL Trees
|
- Examples and exercises are revised.
|
Chapter 26 |
Chapter 27 Hashing |
- Redesign MyHashSet to implement Collection.
- Improved discussions for hashing
|
Chapter 27 |
Chapter 28 Graphs and
Applications |
- Use adjacency edge lists to store edges Instead
of using the adjacency vertex lists. This provides
great flexibility in designing reusable code. The
weighted edges in the next chapter can be stored
using the same adjacency lists.
- The new methods for adding vertices and adding
edges.
- All example source code are completely revised.
- New exercises 28.17-28.25.
|
Chapter 28 |
Chapter 29 Weighted
Graph Applications |
- Use adjacency edge list to store edges rather
than using priority queues to simplify implementations
of the MST and SP algorithms.
- A new implementation for MST is provided to
simplify presentation.
- A new implementation for Shortest Path is provided
to simplify presentation.
- All example source code are completely revised.
- New exercises 29.17-32.20.
|
Chapter 29 |
Chapter 30 Aggregate
Operations on Collection Streams |
|
|
Chapter 31 Advanced
JavaFX Programming and FXML |
- The builder classes are no longer supported
in JavaFX 8. So it is removed from this chapter.
- Examples do not use builder classes now.
- A new section on FXML and Scene Builder
|
Chapter 34 |
Chapter 32 Multithreading
and Parallel Programming |
- Use lambda expressions to simplify coding for
threads.
- Run code in the application thread using the
Platform.runLater(Runnable).
|
Chapter 30 |
Chapter 33 Networking |
|
Chapter 31 |
Chapter 34 Java Database
Programming |
|
Chapter 32 |
Chapter 35 Advanced
Database Programming |
|
Chapter 35 |
Chapter 36 Internationalization |
|
Chapter 36 |
Chapter 37 Servlets |
|
Chapter 37 |
Chapter 38 JavaServer Pages |
|
Chapter 38 |
Chapter 39 Java Server
Faces |
- Updated Java EE 7.
- Section 39.10 Contexts and Dependency Injection is new.
|
Chapter 33 |
Chapter 40 RMI |
|
|
Chapter 41 Web Services |
|
Chapter 39 |
Chapter 42 2-4 Trees and B-Treess |
|
Chapter 40 |
Chapter 43 Red-Black Trees |
|
Chapter 41 |
Chapter 44 Testing Using JUnit |
|
Chapter 42 |