Book Review - Introduction to Java Programming (Sixth Edition) by Y. Daniel Liang
If you prefer your computer technology learning in textbook style, then this is an excellent choice in books... Introduction to Java Programming - Comprehensive Version (Sixth Edition) by Y. Daniel Liang. It's an entire college-level course in Java in one very big (and well-written) volume...
Part 1 - Fundamentals of Programming: Introduction to Computers, Programs, and Java; Primitive Data Types and Operations; Selection Statements; Loops; Methods; Arrays
Part 2 - Object-Oriented Programming: Objects and Classes; Strings and Text I/O; Inheritance and Polymorphism; Abstract Classes and Interfaces; Object-Oriented Design
Part 3 - GUI Programming: Getting Started with GUI Programming; Graphics; Event-Driven Programming; Creating User Interfaces; Applets and Multimedia
Part 4 - Exception Handling, I/O, and Recursion: Exceptions and Assertions; Binary I/O; Recursion
Part 5 - Data Structures: Lists, Stacks, Queues, Trees, and Heaps; Generics; Java Collections Framework, Algorithm Efficiency and Sorting
Part 6 - Concurrency, Networking, and Internationalization: Multithreading; Networking; Internationalization
Part 7 - Advanced GUI Programming: JavaBeans and Bean Events; Containers, Layout Managers, and Borders; Menus, Toolbars, Dialogs, and Internal Frames; MVC and Swing Models; JTable and JTree
Part 8 - Web Programming: Java Database Programming; Advanced Java Database Programming; Servlets; JavaServer Pages; Remote Method Invocation
Appendixes: Java Keywords; The ASCII Character Set; Operator Precedence Chart; Java Modifiers; Special Floating-Point Values; Bit Operations
At over 1300 pages, you'd expect there to be quite a bit of material covering a wide range of topics. And you'd be right... Liang has written a textbook on Java, and it's one textbook that I'd probably buy even if I wasn't enrolled in a class. As you can tell from the contents, everything from the very basics of the language (like primitives) to highly advanced topics (like RMI) are covered in at least some level of detail. Once you get done working through the material (or the semester ends, whichever comes first), you should have a complete understanding of Java. From that point, you'll simply need experience. Each chapter is laid out with objectives, the material, quite often a case study that ties together everything in the chapter, a summary, review questions, and programming exercises. There's even an entire website devoted to supporting instructors that are using this book as their course reference.
One thing I noticed about this book is that early on they start using Swing examples to show programming examples using a visual interface. Most Java books have historically used command line programs to teach the language. It's an acceptable method, but it tends to make the use of GUI features something to be learned separately. Since there's a mixture of command line and graphical examples from the beginning, the mental divide between the two types of programs is greatly diminished. It probably means that Java will be thought of as a Visual Basic language that can be used to mock up applications. That's a good thing...
Excellent coverage of Java, clear layout of material, and aesthetically pleasing design... a good choice...