Reference books should be on everybody's bookshelf, but they are not very good for learning something.
For learning Java, I recommend "Thinking in Java" by Bruce Eckel. The latest edition is 4 and it should be available in any reasonable book store. You can download a free PDF of the third edition
here[
^]
You can get the first 7 chapters of the 4th edition as a free download
here[
^].
I have the 3rd and 4th editions in paper, and the 3rd edition as PDF on a Kindle somewhere. Great book.