Java Books
Beginner to Advanced Java
The Java Programming Language
Co-authored by the creator of the language itself, this is an in-depth introduction to Java.
Java Precisely
A more concise guide to the Java language for developers who want to get started quickly.
Core Java, Advanced Features
Covers more than the previous volume including: streams/files, databases, XML, GUI, 2D graphics, and more.
Java Language Specification
Co-authored by the creator of the language, this is the detailed technical reference for the language. Not for beginners.
Java in a Nutshell
A quick reference book for the Java language. Includes content on common APIs, frameworks, and tools.
Programming for the JVM
Teaches the low level instruction set architecture of the JVM. Useful if you're planning on designing a language for it (or a fun read!)
Java Concurrency in Practice
Teaches the basics of concurrency and thread safety as well as how to design a concurrent architecture.
Programming Concurrency JVM
Teaches concurrency on the JVM. These techniques can be used with any JVM language - Clojure, JRuby, Groovy, or Scala.
JUnit in Action
JUnit is the popular unit testing library for Java. This book covers using mocks, in-container testing, database testing, and test automation.
Agile Java: Crafting Code with TDD
An introduction to the Java language using test driven development.
Well Grounded Java Developer
For advanced Java developers, this book provides a look at Java 7 features and other related tools.
Hibernate in Action
Hibernate is the popular persistence framework (ORM) for Java. It takes care of loading and saving objects from and to your database.
Just Spring
A concise introduction to Spring - the lightweight Java framework. You'll learn about dependency injection, beans, event handling, and more.