I have been looking for a book to teach myself Java for a long time and I think that I have just found it.
This book runs from the very basics of Java i.e. methods, operators, parameters, recursion to awt, swing, linked lists, etc. At each stage it introduces something new and uses it to create a program to do a job and then gives self-reviews and challenges, to check that you have grasped the idea. At the beginning of each chapter is a list of objectives and keywords, I like this at you can flip through and read a chapter on a keyword you're interested in. There is a lot of white space so it is easy to read and has notes and comments in the margins. The table of contents and index are very detailed and it is easy to find what you are looking for.
The book does not have a CD but you can get the code and other things, from the web site.
I have been looking for a book to teach myself Java for a long time and I think that I have just found it.