There is one required and two recommended books for this course.
However, there are over one hundred
different books about Java. You should feel free to use whichever ones
you find helpful.
Brief summaries of many available books are available at
http://metalab.unc.edu/javafaq/books.html.
I will, however, recommend three in particular which I think are better than
average and which roughly parallel this course's material.
An electronic version is available from the author's web site at http://www.bruceeckel.com/javabook.html in a variety of formats. This is possibly the best book available on the semantics of Java as opposed to the syntax, a large emphasis of this course.