Further study

Resources

A short, opinionated list. We'd rather point you to three great books than thirty mediocre ones.

Essential reading

  • Effective Java — Joshua Bloch
    The single most useful book on writing idiomatic Java. Read it after you've finished Chapter 2.
  • Java Concurrency in Practice — Brian Goetz et al.
    The definitive reference on threads, locks, and the memory model.
  • Modern Java in Action — Urma, Fusco, Mycroft
    A clear, practical tour of streams, lambdas, and the modern platform.

Official documentation

  • OpenJDK Project
    The reference implementation. Source of truth for the language and runtime.
  • JEP Index
    Every change to the Java platform, indexed and explained by its authors.
  • Java Language Specification
    Dense, but the only document that decides what Java actually means.

Tools we recommend

  • IntelliJ IDEA Community
    The most refined Java IDE, free for non-commercial use.
  • SDKMAN!
    Install and switch between JDK distributions with one command.
  • JBang
    Run a single .java file as a script, with dependencies.