Introduction to Java Programming and Data Structures Twelfth Edition
Revel and Print

Introduction to Java Programming and Data Structures Twelfth Edition by Y. Daniel Liang comes with two versions: digital and print. The digital version is called Revel for Java, which is identical to the print version. The Revel book has the built-in interactives for CodeAnimation, LiveExample, and AlgorithmAnimation. These interactives are very helpful for new students to learn programming. Instructors can assign auto-graded small exercises and projects.

Here are the key new features:

  1. Updated to Java 9, 10, and 11. Examples are improved and simplified by using the new features in Java 9, 10, 11.
  2. The GUI chapters are updated to JavaFX 11. The examples are revised. The user interfaces in the examples and exercises are now resizable and displayed in the center of the window.
  3. More examples and exercises in the data structures chapters use Lambda expressions to simplify coding.
  4. Both Comparable and Comparator are used to compare elements in Heap, PriorityQueue, BST, and AVLTree. This is consistent with the Java API and is more useful and flexible.
  5. Use intuitive and consistent naming for CodeAnimation and LiveExample. A listing is titled CodeAnimation if it is a code animation. A listing is titled LiveExample if it is a LiveExample.
  6. Students can fill in the missing code in LiveExample. This helps students practice coding and gain a deeper understanding of the example.
  7. The CheckPoint questions and Quizzes are inline at the end of a section.
  8. More assignable programming exercises are created.
  9. A computer-generated voice is used for code animation, check point, word match, and multiple-choice questions.
  10. VideoNotes are updated.
  11. Provided additional exercises not printed in the book. These exercises are available for instructors only.

The following table shows the correlation of the changes to the previous edition.

Correlation to the Previous Edition

This Book (Java 2E) What's New Previous Book (Java 11E)
Global Changes
  • Updated to Java 9, 10, and 11. Examples are improved and simplified by using the new features in Java 9, 10, 11.
  • The GUI chapters are updated to JavaFX 11. The examples are revised. The user interfaces in the examples and exercises are now resizable and displayed in the center of the window.
  • More examples and exercises in the data structures chapters use Lambda expressions to simplify coding.
  • Both Comparable and Comparator are used to compare elements in Heap, PriorityQueue, BST, and AVLTree. This is consistent with the Java API and is more useful and flexible.
  • Use intuitive and consistent naming for Code Animation and LiveExample. A listing is titled CodeAnimation if it is a code animation. A listing is titled LiveExample if it is a LiveExample.
  • Students can fill in the missing code in LiveExample. This helps students practice coding and gain a deeper understanding of the example.
  • The CheckPoint questions and Quizzes are inline at the end of a section.
  • More assignable programming exercises are created.
  • A computer-generated voice is used for code animation, check point,
  • VideoNotes are updated.
  • Provided additional exercises not printed in the book. These exercises are available for instructors only.
 
Chapter 1 Introduction to Computers, Programs, and Java
  • Sections 1.2-1.5 are updated with new information.
  • Section 1.2 is split into six subsections with CheckPoint questions and quizzes for each subsection.
  • New JDK java command is introduced in Section 1.8.
  • The sections on using NetBeans and Eclipse are updated for NetBeans 9 and Eclipse 4.9 for JDK 11.
Chapter 1
Chapter 2 Elementary Programming
  • Add a section on using JShell in Section 2.11.
  • distinquish between keywords and reserved words.
  • Use underscores to improve readabilities in a number literal in Section 2.10.1.
  • Section 2.9 is split into three subsections with CheckPoint questions and quizzes for each subsection.
Chapter 2
Chapter 3 Selections
  • Add several new check point questions.
  • Add the ternary operator in Table 3.8.
Chapter 3
Chapter 4 Mathematical Functions, Characters, and Strings
  • Section 4.2 is split into six subsections with CheckPoint questions and quizzes for each subsection.
  • Section 4.3 is split into four subsections with CheckPoint questions and quizzes for each subsection.
  • Section 4.4 is split into four subsections with CheckPoint questions and quizzes for each subsection.
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
  • New CheckPoint questions are added.
Chapter 6
Chapter 7 Single-Dimensional Arrays
  • Section 7.2 is split into seven subsections with CheckPoint questions and quizzes for each subsection.
Chapter 7
Chapter 8 Multidimensional Arrays
  • Revised Section 8.1.
Chapter 8
Chapter 9 Objects and Classes
  • Section 9.5 is split into four subsections with CheckPoint questions and quizzes for each subsection.
  • Section 9.14 "The this keyword" is revised and is split into two subsections with CheckPoint questions and quizzes for each subsection.
Chapter 9
Chapter 10 Thinking in Objects
  • Revised the composition relationship in Secton 10.4.2.
  • Cover new JDK 9 features for wrapper classes in Section 10.7.
  • Cover new JDK 9 features for BigDecimal in Section 10.9.
  • Section 10.10 is split into six subsections with CheckPoint questions and quizzes for each subsection.
  • Section 10.11 is split into three subsections with CheckPoint questions and quizzes for each subsection.
Chapter 10
Chapter 11 Inheritance and Polymorphism
  • Added CheckPoint questions.
Chapter 11
Chapter 12 Exception Handling and Text I/O
  • Section 12.4 is split into five subsections with CheckPoint questions and quizzes for each subsection.
  • Section 12.11 is split into five subsections with CheckPoint questions and quizzes for each subsection.
  • Section 12.11 is revised.
Chapter 12
Chapter 13 Abstract Classes and Interfaces
  • Section 13.2 is split into four subsections with CheckPoint questions and quizzes for each subsection.
  • Section 13.5 is revised.
  • New CheckPoint questions are added in Section 13.5.
Chapter 13
Chapter 14 JavaFX Basics
  • Updated to JavaFX 11.
  • Section 14.10 is split into four subsections with CheckPoint questions and quizzes for each subsection.
  • Section 14.11 is split into six subsections with CheckPoint questions and quizzes for each subsection.
Chapter 14
Chapter 15 Event-Driven Programming and Animations
  • Updated to JavaFX 11.
  • Section 15.11 is split into three subsections with CheckPoint questions and quizzes for each subsection.
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
  • Section 17.4 is split into four subsections with CheckPoint questions and quizzes for each subsection.
  • Section 17.6 is split into two subsections with CheckPoint questions and quizzes for each subsection.
Chapter 17
Chapter 18 Recursion
  • Added new code animation to show how a recursive method is called in Section 18.2.
  • Added new code animation to show how a tail-recursive method is called in Section 18.10.
Chapter 18
Chapter 19 Generics
  • Section 19.9 is revised.
Chapter 19
Chapter 20 Lists, Stacks, Queues, and Priority Queues
  • Added the new JDK 9 List.of method to replace Arrays.asList method.
  • introduced the local variable declaration using var and Java 10 auto type inference in Section 20.3.
  • Revised Section 20.6.
Chapter 20
Chapter 21 Sets and Maps
  • Section 21.3 is split into three subsections with CheckPoint questions and quizzes for each subsection.
  • Added the new JDK 9 Set.of an Map.of methods to create immutable sets and maps in Section 21.7.
Chapter 21
Chapter 22 Developing Efficient Algorithms
  • We presented the Big-O notation in laymen’s terms. Appendix J gives a precise mathematical definition for the Big-O notation as well as the Big-Omega and Big-Theta notations.
  • Section 22.10 is split into two subsections with CheckPoint questions and quizzes for each subsection.
  • The three string matching alogrithms: brute-force, Boyer-Moore, and KMP are new.
  • Section 22.11 is split into two subsections with CheckPoint questions and quizzes for each subsection.
Chapter 22
Chapter 23 Sorting
  • Section 23.6 is split into six subsections with CheckPoint questions and quizzes for each subsection.
Chapter 23
Chapter 24 Implementing Lists, Stacks, Queues, and Priority Queues
  • Redesign the PriorityQueue class with Comparator.
  • Section 24.4 is split into four subsections with CheckPoint questions and quizzes for each subsection.
  • Exercises are revised.
Chapter 24
Chapter 25 Binary Search Trees
  • Redesign the BST using comparator.
  • Section 5.2 is split into Sections 5.2-5.7.
  • Exercises are revised.
Chapter 25
Chapter 26 AVL Trees
  • Redesign the AVLTree using comparator.
Chapter 26
Chapter 27 Hashing
  • Section 27.3 is split into three subsections with CheckPoint questions and quizzes for each subsection.
  • Create new multiple-choice questions.
  • Improved discussions for hashing
Chapter 27
Chapter 28 Graphs and Applications
  • New graph terms are added in Section 28.2.
  • The UnweightedGraph class is revised.
Chapter 28
Chapter 29 Weighted Graph Applications
  • The code for MST is revised.
  • The code for SP is revised.
Chapter 29
Chapter 30 Aggregate Operations on Collection Streams
  • New chapter
Appendix D
  • Appendix D is split into four subsections with CheckPoint questions and quizzes for each subsection.
Chapter 31
Appendix H
  • New H.4 Replacing Partial Content in a Matched Substring
Appendix H
Appendix J
  • New
Bonus Chapter 34 Java Database Programming
Chapter 32
Bonus Chapter 35 Advanced Database Programming
Chapter 35
Bonus Chapter 36 Internationalization

 

Chapter 36
Bonus Chapter 37 Servlets
  • Updated Java EE 7.
Chapter 37
Bonus Chapter 38 JavaServer Pages
  • Updated Java EE 7.
Chapter 38
Bonus Chapter 39 Java Server Faces
  • Updated Java EE 7.
  • Section 39.10 Contexts and Dependency Injection is new.
Chapter 33
Bonus Chapter 40 RMI
  • New chapter
Bonus Chapter 41 Web Services
Chapter 39
Bonus Chapter 42 2-4 Trees and B-Treess
Chapter 40
Bonus Chapter 43 Red-Black Trees
Chapter 41
Bonus Chapter 44 Testing Using JUnit
Chapter 42