Combining a proper foundation in the principles of programming and problem solving, and the expert guidance of Cay Horstmann, this book enables readers to take advantage of many of the exciting features of the Java language. This text is comprehensive enough to cover both introductory programming concepts and the elements of Java that are needed to write real-life programs, while reinforcing problem-solving skills.· Introduction· Using Objects· Implementing Classes· Fundamental Data Types· Programming Graphics · Decisions· Iteration· Arrays and Array Lists· Designing Classes · Testing and Debugging· Interfaces and Polymorphism· Event Handling · Inheritance· Graphical User Interfaces · Exception Handling· Files and Streams· Object-Oriented Design · Recursion· Sorting and Searching· An Introduction to Data Structures· Advanced Data Structures · Generic Programming· Multithreading · Internet Networking · Relational Databases · XML · JavaServer Faces