What are the best books to learn Java?

Beginner:

  • Head First Java, 2nd Edition
  • Thinking in Java (4th Edition)
  • Think Java
  • Introduction to Java by Sedgewick
  • Java in a Nutshell
  • Core Java Volume I–Fundamentals (9th Edition) (Core Series): Cay S. Horstmann
  • Java How To Program (late objects) by Paul Deitel, Harvey Deitel

Intermediate:

  • Effective Java (2nd Edition): Joshua Bloch
  • Java Performance: Charlie Hunt, Binu John
  • Head First Servlets and JSP
  • SCJP by Kathy and Sierra
  • Java – The Complete Reference by Herbert Schildt.
  • Java Concurrency in Practice
  • Java Performance
  • The Java Programming Language, 4th Edition

Advanced:

  • Java Puzzlers: Traps, Pitfalls, And Corner Cases