Introduction to Java Programming and Data Structures Twelfth Edition
Revel and Print
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 builtin interactives for CodeAnimation, LiveExample, and AlgorithmAnimation. These interactives are very helpful for new students to learn programming. Instructors can assign autograded small exercises and projects.
Here are the key new features:
 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 CodeAnimation 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 computergenerated voice is used for code animation, check point, word match, and multiplechoice questions.
 VideoNotes are updated.
 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 


Chapter 1 Introduction to Computers, Programs, and Java 

Chapter 1 
Chapter 2 Elementary Programming 

Chapter 2 
Chapter 3 Selections 

Chapter 3 
Chapter 4 Mathematical Functions, Characters, and Strings 

Chapter 4 
Chapter 5 Loops 

Chapter 5 
Chapter 6 Methods 

Chapter 6 
Chapter 7 SingleDimensional Arrays 

Chapter 7 
Chapter 8 Multidimensional Arrays 

Chapter 8 
Chapter 9 Objects and Classes 

Chapter 9 
Chapter 10 Thinking in Objects 

Chapter 10 
Chapter 11 Inheritance and Polymorphism 

Chapter 11 
Chapter 12 Exception Handling and Text I/O 

Chapter 12 
Chapter 13 Abstract Classes and Interfaces 

Chapter 13 
Chapter 14 JavaFX Basics 

Chapter 14 
Chapter 15 EventDriven Programming and Animations 

Chapter 15 
Chapter 16 JavaFX UI Controls 

Chapter 16 
Chapter 17 Binary I/O 

Chapter 17 
Chapter 18 Recursion 

Chapter 18 
Chapter 19 Generics 

Chapter 19 
Chapter 20 Lists, Stacks, Queues, and Priority Queues 

Chapter 20 
Chapter 21 Sets and Maps 

Chapter 21 
Chapter 22 Developing Efficient Algorithms 

Chapter 22 
Chapter 23 Sorting 

Chapter 23 
Chapter 24 Implementing Lists, Stacks, Queues, and Priority Queues 

Chapter 24 
Chapter 25 Binary Search Trees 

Chapter 25 
Chapter 26 AVL Trees 

Chapter 26 
Chapter 27 Hashing 

Chapter 27 
Chapter 28 Graphs and Applications 

Chapter 28 
Chapter 29 Weighted Graph Applications 

Chapter 29 
Chapter 30 Aggregate Operations on Collection Streams 


Appendix D 

Chapter 31 
Appendix H 

Appendix H 
Appendix J 


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 

Chapter 37 
Bonus Chapter 38 JavaServer Pages 

Chapter 38 
Bonus Chapter 39 Java Server Faces 

Chapter 33 
Bonus Chapter 40 RMI 


Bonus Chapter 41 Web Services 

Chapter 39 
Bonus Chapter 42 24 Trees and BTreess 

Chapter 40 
Bonus Chapter 43 RedBlack Trees 

Chapter 41 
Bonus Chapter 44 Testing Using JUnit 

Chapter 42 