For CS1 (in Java) and introductory Java programming courses offered in Computer Science, Engineering, CIS, MIS, IT and Business programs at both the undergraduate and graduate level. With a focus on Java's strengths and object-oriented problem solving, this revision of a popular book takes an "objects early" approach to teaching Java, with the assumption that teaching beginners the "big picture" early gives them more time to master the principles of object-oriented programming.
This is very technically written, and it is innappropriate for beginners. I had to get another java book to supplement it. If you do not have at least some understanding of programming and technical terms related to programming, do not pick up this book.