Brief Version
Comprehensive Version
Introduction to Java Programming, 8E
 
Y. Daniel Liang

What is New in the 8E Edition?

This edition substantially improved Introduction to Java Programming, Seventh Edition. The major improvements are as follows:

Complete Revision

The book is completely revised in every detail to enhance clarity, content, presentation, examples, and exercises.

New Examples

The book provides 20% new problems for examples and exercises to motivate and stimulate student interest in programming.

Early Console Input

Console input was covered at the end of Chapter 2 in the previous edition. The new edition introduces console input early in Chapter 2 so that students can write interactive programs early.

Hand Trace Box

The hand trace box is added for many programs in early chapters so that students can see how a program is executed.

Multidimensional Arrays

Single-dimensional arrays and multidimensional arrays are covered in two chapters to give instructors the flexibility to cover multidimensional arrays later.

Sudoku Problem Simplified

The case study for the Sudoku problem has been moved to the companion Website. A more pedagogically effective simple version of the Sudoku problem is presented instead.

Basic GUI Early

The design of the API for Java GUI programming is an excellent example of how the object-oriented principle is applied. Students learn better with concrete and visual examples. So basic GUI is moved before introducing abstract classes and interfaces. You can however still choose to cover abstract classes and interfaces before GUI.

Exception Handling Early

Exception handling is covered before abstract classes and interfaces. You can however still choose to cover exception handling later.

Design Patterns and Guidelines

Chapter 12, “Object-Oriented Design and Patterns,” in previous edition is deleted. The design guidelines and patterns are now spread in several chapters so these topics can be covered in appropriate context.

Sorting

The chapter on sorting is moved to right after the chapter on algorithm efficiency so that students can immediately apply algorithm efficiency on sorting algorithms.

Java 2D

A brand-new bonus chapter 44 covers Java 2D.

New Data Structures Chapters

The coverage on data structures is expanded with new bonus chapters on AVL trees, Splay trees, 2-3, B-trees, and red-black trees, and hashing. This edition can serve a full course on data structures.

Correlation to the Previous Edition

This Book (8E) What's New Previous Book (7E)
Chapter 1 Introduction to Computers, Programs, and Java
  • This chapter is simplified to gear for novices. Unnecessary jargons are removed from this chapter.
  • “Number Systems” is moved to Appendix F to give instructor flexibility to cover it when it is needed.
  • New examples Listings 1.2, 1.3
  • new Exercises 1.4-1.7
Chapter 1
Chapter 2 Elementary Programming
  • Revised problem-driven introduction
  • Console input is moved earlier to enable students to write practical and useful programs early.
  • Three problems (ComputeLoan, ComputeChange, ShowCurrentTime) were presented in the Case Studies of the 7E. These problems are now covered earlier when appropriate concepts are introduced.
  • New Exercises 2.20-2.26
Chapter 2
Chapter 3 Selections
  • Revised problem-driven introduction.
  • The Boolean operators !, &&, ||, and ^ are moved later so the simple use of selection statements can be covered early along with several interested problems.
  • The GuessBirthday problem is completely revised to first present students with the problem, then program, and finally introducing the binary number used for the game.
  • A new section “Common Errors on Selection Statements” help students avoid pitfalls in writing selection statements.
  • New game Exercises 3.20–3.29.
Chapter 3
Chapter 4 Loops
  • Revised problem-driven introduction
  • New examples FutureTution and MonteCarloSimulation.
  • New game Exercises 4.36–4.46
Chapter 4
Chapter 5 Methods
  • Revised problem-driven introduction
  • New example Decimal2HexConversion
  • New Exercises 5.31–3.36
Chapter 5
Chapter 6 Single-Dimensional Arrays
  • Chapter 6 in the 7E is split into two chapters. The new Chapter 6 covers single-dimensional arrays and the new Chapter 7 covers multidimensional arrays. The new organization gives the instructor flexibility to cover multidimensional arrays later.
  • Revised problem-driven introduction
  • New examples LotteNumber and DeckOfCards
  • New Exercises 6.20–6.30
Part of Chapter 6
Chapter 7 Multidimensional Arrays
  • New problem-driven introductionv
  • A simplified version of Sudoku is presented to make the example accessible to novice students. (This change was made from the feedback of several instructors, including the one attended in the Pearson CS Event in NJ this March.)
  • New Exercises 7.15–7.23
Part of Chapter 6
Chapter 8 Objects and Classes
  • Examples of defining classes and using objects are given early in the chapter before discussing details of syntax.
  • A new example of introducing classes and objects on operating TVs.
  • New Exercises 7.15–7.23
Chapter 7
Chapter 9 Strings and Text I/O
  • New example Hex2DecimalConversion
  • New Exercises 8.29–8.33
Chapter 8
Chapter 10 Thinking in Objects
  • Class design and the design guidelines from Chapter 12 in the 7E are now in this chapter.
  • New Exercise 10.10-10.14
Chapter 9
Chapter 11 Inheritance and Polymorphism
  • Revised problem-driven introduction.
  • Since the new edition introduces GUI right after this chapter, the GUI example for demonstrating inheritance is now deleted.
  • Polymorphism and dynamic binding are now covered in two separate chapters.
  • New diagrams for illustrating inheritance and polymorphism.
Chapter 10
Chapter 12 GUI Basics
  • It is difficult to find practical and interesting examples to teach inheritance and polymorphism at this junction. GUI programming is an excellent example for demonstrating inheritance and polymorphism. That is why we moved this chapter earlier in this new edition. Instructors can still delay it later.
Chapter 13
Chapter 13 Exception Handling
  • New problem-driven introduction
  • We found that most instructors cover exception handling early. After Chapter 11, this chapter can be covered. Instructors can still cover it later as in the 7E.
Chapter 18
Chapter 14 Abstract Classes and Interfaces
  • Abstract classes and interfaces are difficult concepts. It makes sense to postpone it. The new edition covers these topics later in the book.
  • The class design guidelines related to abstract classes and interfaces are now covered in this chapter. These guidelines were covered in Chapter 12 in the 7E. Chapter 12 is completely deleted. The important concepts and examples covered in Chapter 12 are now combined with other chapters in the new edition. The new organization enables these design guidelines and examples to be covered just-in-time.
  • The Rational class from the deleted Chapter 12 in the 7E is now covered in this chapter.
Chapter 11
Chapter 15 Graphics
  • The section on how to get a Graphics object using the getGraphics() method was covered in the 7E. This section is unnecessary and thus removed in the 8E to make the contents friendlier to the novice.
  • New Exercises 15.22-15.28
Chapter 14
Chapter 16 Event-Driven Programming
  • New example is used to introduce event-driven programming.
  • The book uses the industry-recommended way of creating listeners using inner classes. This new edition also introduces other ways of defining listener classes and creating listener objects to give students exposure to other approaches.
  • New Exercises 16.19-16.36
Chapter 15
Chapter 17 Creating User Interfaces
  • 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 16
Chapter 18 Applets and Multimedia
  • Since students are already familiar with GUI applications at this time, this chapter simplifies the introduction of applets by showing how to convert an application to an applet.
  • New exercises 18.32-18.34
Chapter 17
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.
  • Tail-recursion is discussed.
  • New game Exercises 20.24–20.30
Chapter 20
Chapter 21 Generics
  • No major revision
Chapter 21
Chapter 22 Java Collections Framework
  • Several UML diagrams are updated to provide more information about the classes and interfaces in the Collections Framework.
  • The introduction of Map is moved later to the section that covers maps.
  • New exercises 22.12-22.15
Chapter 22
Chapter 23 Algorithm Efficiency
  • No major revisions
Chapter 23
Chapter 24 Sorting
  • Heaps are introduced in this chapter.
  • Heap animation is provided both as a pedagogical tool and as exercises.
Chapter 26
Chapter 25 Lists, Stacks, Queues, and Priority Queues
  • Priority queues are covered
  • The animations for ArrayList, LinkedList, Stacks, and Queues are provided both as pedagogical tools and as exercises.
Chapter 24
Chapter 26 Binary Search Trees
  • The animation for BST is provided both as pedagogical tools and as exercises.
  • Hoffman coding is covered.
Chapter 25
Chapter 27 Graph Applications
  • Graph visualization is provided
  • The animations for depth-first search and breadth-first algorithms are provided both as pedagogical tools and as exercises.
Chapter 28 Weighted Graph Applications
  • Weighted graph visualization is provided
  • The animations for MST and SP algorithms are provided both as pedagogical tools and as exercises.
Chapter 29 Multithreading
  • New SwingWorker and ProgressBarDemo.java are revised using SwingWorker
  • New JDK 1.6 concurrency features are incorporated
Chapter 29
Chapter 30 Networking
  • No major revisions
Chapter 30
Chapter 31 Internationalization
  • No major revisions
Chapter 31
Chapter 32 JavaBeans and Bean Events
  • No major revisions
Chapter 32
Chapter 33 Containers, Layout Managers, and Borders
  • Discussions on GridLayout, OverlayLayout, and SpringLayout are moved to the Companion Web site as supplements
  • Discussions on pluggable look and feel are moved to the Companion Web site as supplements
Chapter 33
Chapter 34 Menus, Toolbars, and Dialogs
  • Moved internal frames to the Companion Web site
Chapter 34
Chapter 35 MVC and Swing Models
  • No major revisions
Chapter 35
Chapter 36 JTable and JTree
  • New §36.4 Auto Sort and Filtering
Chapter 36
Chapter 37 Java Database Programming
  • New §37.6 CallableStatement
Chapter 37
Chapter 38 Advanced Java Database Programming
  • New §34.6 RowSetTableModel
Chapter 38
Chapter 39 Servlets
  • Screen shots are updated to NetBeans 6.7
Chapter 39
Chapter 40 JavaServer Pages
  • Screen shots are updated to NetBeans 6.7
Chapter 40
Chapter 41 JavaServer Faces
  • Screen shots are updated to NetBeans 6.7
Chapter 41
Chapter 42 Web Services
  • Screen shots are updated to NetBeans 6.7
Chapter 42
Chapter 43 Remote Method Invocation
  • Incorporate dynamic generation of stubs and skeletons at runtime
Chapter 43
Chapter 44 Java 2D
  • Brand new
Chapter 44
Chapter 45 AVL Trees and Splay Trees
  • Brand new
Chapter 45
Chapter 46 2-4 Trees and B-Trees
  • Brand new
Chapter 46
Chapter 47 Red-Black Trees
  • Brand new
Chapter 47
Chapter 48 Hashing
  • Brand new
Chapter 48