This Book (9E) |
What's New |
Previous Book (8E) |
Global Changes |
- This edition provides many new examples and exercises to
motivate and stimulate student interest in programming.
- Updated to JDK 7 (string expression in the switch
statement in Chapter 3, multi-catch in Chapter 14, generic
type inference in Chapter 21, fork-join framework for
parallel processing in Chapter 31.) All the JDK 7 new features are
presented in separate sections. Instructors can choose to
skip it.
- Key Point is provided at the beginning of each section
to summarize the important concepts and materials for the
section.
- Check Point is provided at the end of the section
to check student's understanding of the material covered in
the section.
- Links to Test questions are provided at the end of
chapter to test student's understanding for the whole
chapter.
- Links to author-developed animations to demonstrate how
algorithms (such as linear search, binary search, selection
sort, binary search tree, heap, hashing, etc.) work.
- The numeric wrapper classes, BigInteger, and BigDecimal
are now introduced in Chapter 10 to enable students to write
code using these classes early.
- Use the @Override annotation throughout the book consistently to improve program quality.
- Simple use of generics is introduced along with
ArrayList in Chapter 11 and with Comparable in Chapter 15
while the complex detail on generics is still kept in
Chapter 21.
- Chapter 22 is split into two chapters (Chapter 22 and Chapter 23) to make rooms for incorporating three new case studies to demonstrate effective use of data structures.
- Chapter 24 is expanded to introduce algorithmic techniques: dynamic programming, divide-and-conquer, backtracking, and greedy algorithm with new examples to design efficient algorithms.
- Visual animations are created to show how data structures and algorithms work.
- Chapters 35-50 are bonus Web chapters that cover a wide
variety of advanced topics on Java 2D, JavaBeans, MVC, threads, database
programming, web (Servlets, JSP, JSF), web service,
networking, RMI, JUnit, etc.
|
|
Chapter 1 Introduction to Computers,
Programs, and Java |
- The introduction to computers and programming languages
has been updated.
- Move the section on syntax errors, runtime errors, and logic errors from Chapter 2 to Chapter 1 to
introduce programming errors early on.
- Move programming style and doc here from Chapter 2 to Chapter 1 to foster good programming style early.
- New exercises 1.8-1.15.
|
Chapter 1 |
Chapter 2 Elementary Programming |
- New introductory problem to motivate students.
- Add software development process section to introduce analysis and design as well coding.
- Expand the coverage on debugging.
- Move the section on syntax errors, runtime errors, and logic errors to Chapter 1 to
introduce programming errors early on.
|
Chapter 2 |
Chapter 3 Selections |
- New Chinese Zodiac example for switch statements.
- New figure to show multiple-alternative if statements
- Use string expression in the switch statement (JDK 7).
- Exercises 3.32-3.35.
- Added debugging in this chapter.
|
Chapter 3 |
Chapter 4 Loops |
- New AdditionQuiz example to terminate the loop until a correct answer is
entered.
- Use a new and more effective example for introducing the break statement.
|
Chapter 4 |
Chapter 5 Methods |
- New Exercises 5.37–3.39.
- Revised several diagrams.
|
Chapter 5 |
Chapter 6 Single-Dimensional Arrays |
- New Exercises 6.35–6.37.
- Revised several diagrams.
|
Chapter 6 |
Chapter 7 Multidimensional Arrays |
- Two math exercises are replaced by new game exercises.
- New exercises 7.35–7.37.
|
Chapter 7 |
Chapter 8 Objects and Classes |
|
Chapter 8 |
Chapter 9 Strings |
- Moved Text I/O to Chapter 13 along with exception
handling.
- The Calculator example has been revised to take the
expression as a string to avoid the * argument in the
command line.
|
Chapter 9 |
Chapter 10 Thinking in Objects |
- The sections on wrapper classes, BigInteger and
BigDecimal are moved here from Chapter 15 so students can
write code using these classes early.
- New exercises 10.14–10.15.
|
Chapter 10 |
Chapter 11 Inheritance and Polymorphism |
- Use the @Override annotation to improve program quality.
- Simple use of generics is introduced along with
ArrayList while the complex detail on generics is still kept
in Chapter 21.
- JDK 7 generic type inference.
- New case study using ArrayList.
- New Exercises 11.9–11.10.
|
Chapter 11 |
Chapter 12 GUI Basics |
- Move JButton, JCheckBox, JRadioButton, JLabel, and
JTextField here from Chapter 17 so these popular GUI
components can be used in the examples and exercises early.
- Introduce customizing mouse cursor as a Swing common
feature.
- New exercises 12.11–12.14.
|
Chapter 12 |
Chapter 13 Graphics |
- GUI programming is an excellent example for demonstrating inheritance and
polymorphism and for stimulating student interests in programming. That is why
we moved this chapter earlier in this new edition. Instructors can still delay
it later.
- New Exercises 15.27-15.32.
|
Chapter 15 |
Chapter 14 Exception
Handling and Text I/O |
- Move I/O here from Chapter 9.
- Read a file from the Web.
- New exercises involving processing large datasets from the Web.
- JDK 7 multi-catch.
|
Chapter 13 |
Chapter 15 Abstract Classes and Interfaces |
- Remove the section on event-driven programming. It will be covered in
Chapter 16.
- Simple use of generics is introduced along with ArrayList in Chapter 11 and
with Comparable in Chapter 15 while the complex detail on generics is still kept
in Chapter 21.
- New example using Comparable.
- The sections on wrapper classes, BigInteger and BigDecimal are moved to
Chapter 11.
- New exercises 15.21–12.26.
|
Chapter 14 |
Chapter 16 Event-Driven Programming |
- Replace WindowEvent with new examples.
- New bouncing ball example.
- New Exercises 16.37-16.40.
|
Chapter 16 |
Chapter 17 GUI Components |
-
This chapter is designed for self-study. This chapter serves as a reference for creating GUI. Since no new concepts are introduced, students can read this chapter on their own.
|
Chapter 17 |
Chapter 18 Applets and Multimedia |
- New exercises 18.35-18.35.
|
Chapter 18 |
Chapter 19 Binary I/O |
- Moved the AddressBook case study to the companion Website.
- New exercises 19.16-19.21.
|
Chapter 19 |
Chapter 20 Recursion |
- Revise several programs to make them easier to comprehend by new programmers.
- Remove the recursive Eight Queens problem. A more intuitive non-recursive
Eight Queens solution was given in Chapter 23.
- New game Exercises 20.31–20.39.
|
Chapter 20 |
Chapter 21 Generics |
|
Chapter 21 |
Chapter 22 Lists, Stacks,
Queues, and Priority Queues |
- New introductory problem.
- New example on using comparators.
- New case study on displaying multiple bouncing balls.
- New case study on evaluating expressions.
- Revised several new class diagrams.
|
Chapter 22 |
Chapter 23 Sets and Maps |
- New introductory problem.
- New example for comparing performance of sets and lists.
- New case study for counting the number of keywords in a
file using a set.
- Revised several new class diagrams.
|
Chapter 22 |
Chapter 24 Developing Efficient
Algorithms |
- Introduce algorithmic approaches: dynamic programming,
divide-and-conquer, backtracking.
- New backtracking Eight Queens example.
- New convex hall problems with two algorithms.
- New exercises 24.21–20.29.
|
Chapter 23 |
Chapter 25 Sorting |
- Improved merge sort implementation.
- New Exercises 24.15–24.19.
|
Chapter 24 |
Chapter 26 Implementing Lists, Stacks, Queues,
and Priority Queues |
- Use the standard Stack class (rather than the GenericStack class provided by
the book) for the EvaluateExpression example.
- The EvaluateExpression example has been revised to take the expression as a
string to avoid the * argument in the command line.
- New exercises 25.18, 28.19.
|
Chapter 25 |
Chapter 27 Binary Search Trees |
- Simplified the TreeView class.
- Use new analogy for tree traversals.
- Use the standard PriorityQueue class (rather than the
heap class provided by the book) for the HuffmanTree
example.
|
Chapter 26 |
Chapter 28 Hashing |
- This was a Web chapter in the 8E and now moved here
because it is covered in many DS courses.
|
Chapter 48 |
Chapter 29 AVL Trees |
- This was a Web chapter in the 8E and now moved here
because it is covered in many DS courses. The coverage on
Splay Trees in the 8E is now a supplement in the companion
Website.
|
Chapter 45 |
Chapter 30 Graph Applications |
- New introductory problem.
- Modified the Graph interface by adding the methods
clear(), addVertex, and addEdge.
- New case study: the connected circles problem.
- Move the Knight's tour problem to supplement.
- New exercises 28.21–28.25.
|
Chapter 27 |
Chapter 31 Weighted Graph Applications |
- Weighted graph visualization is provided.
- Implement addVertex and addEdge for weighted graphs.
- New exercises 29.17–29.18.
|
Chapter 28 |
Chapter 32 Multithreading and
Parallel Programming |
- Chapter title has changed to highlight parallel
programming.
- New JDK 7 Fork/Join Framework is introduced to develop
parallel programs.
- New exercises 32.17–32.25.
|
Chapter 29 |
Chapter 33 Networking |
|
Chapter 30 |
Chapter 34 Java Database Programming |
|
Chapter 37 |
Chapter 35 Internationalization |
|
Chapter 31 |
Chapter 36 JavaBeans and Bean Events |
|
Chapter 32 |
Chapter 37 Containers, Layout Managers,
and Borders |
|
Chapter 33 |
Chapter 38 Menus, Toolbars, and
Dialogs |
|
Chapter 34 |
Chapter 39 MVC and Swing Models |
|
Chapter 35 |
Chapter 40 JTable and JTree |
|
Chapter 36 |
Chapter 41 Advanced Java Database
Programming |
|
Chapter 38 |
Chapter 42 Servlets |
|
Chapter 39 |
Chapter 43 JavaServer Pages |
|
Chapter 40 |
Chapter 44 JSF 2.0 |
- Brand new chapter to introduce standard JSF 2.0.
- The old chapter on Visual Web Development (using
Woodstock framework) in the 8E is now a
supplement in the companion Website.
|
|
Chapter 45 Web Services |
|
Chapter 42 |
Chapter 46 Remote Method Invocation |
|
Chapter 43 |
Chapter 47 2-4 Trees and B-Trees |
|
Chapter 46 |
Chapter 48 Red-Black Trees |
|
Chapter 47 |
Chapter 49 Java 2D |
|
Chapter 44 |
Chapter 50 Testing Using JUnit |
|
|