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.

Thinking in Java

Clearly written and meant for programmers with experience in other languages.

Core Java, Fundamentals

A concise tutorial and reference to the standard edition of Java.

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!)

Design Patterns in Java

The original 23 design patterns from the GoF book, with examples in Java.

Java Performance

Learn about common bottlenecks, benchmarking techniques, and the Java HotSpot VM.

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.

Pro Java EE 5

A resource for managing a Java EE 5 environment (from QA to performance tuning).

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.