Beginning Java 2 SDK 1.4 Edition
Ivor Horton
Wrox Press
When this book first came out, I was teaching a course in programming with Java in the community education division of the local community college. This was the textbook used for the course and the feedback was generally positive. While I had to occasionally give some detailed explanations as to why the examples worked the way they did, most of the time the students were able to read and understand it on their own. 
 I consider the sequence of presentation to be nearly perfect, the fundamentals of the language are taught using console applications, which prevents the overconfidence of understanding that develops among students that begin in a visual environment. Students find it very easy to create the GUI interfaces in a visual development environment and they believe that they know how to program. Then, when they are forced to program by doing things like writing loops, they crash. 
 While this book does not cover some of the later additions to the Java language, this book can still be used as a textbook in courses for beginners. It remains a great book for the student learning how to program in Java.