You started learning Java, and you need more information than you find in tutorials? So you need Java books.

This tutorial is all about books in Java. We are going to explain what books are appropriate for beginners and later on for more advanced programmers. We will separate the books in 3 sections:

  • Beginner
  • Intermediate
  • Advanced

The point of this tutorial is to give you some insight on books so you can easier learn programming

Note: we will linked each picture with its Amazon link, so you can check it out and maybe buy it.

1. Beginner Books

Books in this section will give you an introduction to Java, which means the point of these books is to learn you how to, for example, create new program, and test out the most simple codes, here is the list:

1.1. Head First Java

This book is written by Kathy Sierra and Bert Bates and this book is for pure beginners, even if you don't know anything about Java, it will guide you how to write codes using fun examples, games and quizzes. This book also contains a lot of interviews with professional Java programmers where they explained how to quickly learn basics and move on to more advanced stuff.

Head First Java

1.2. Thinking in Java

This book is written by Bruce Eckel and this book is about Java programming language in general. Firstly it was written in 1998, and it has 4 editions, the last edition was written in 2006. Despite that it is written in 2006 it still has a lot of thing to learn from it.

Bruce Eckel's Thinking in Java: The definitive introduction to object-oriented programming in the language of the world wide web

1.3. Think Java

This book is written by Allen B. Downey and Chris Mayfield this book is good for people that has little to none experience in Java. Currently this book is used in many colleges, universities. It is described that it will not teach you Java, but it will help you to think like a computer scientist. You will learn to write programs but you will also learn how to think like a programmer

Think Java

1.4. Java in a Nutshell

This book is written by Benjamin J. Evans and David Flanagan, this book is designed to help experienced Java programmers to better understand Java 7 and Java 8, but it is also something for new developers to better understand Java itself. 

Java in a nutshell

2. Intermediate Books

This section is for developers that know and understood the basics and wants to move up a little bit, so here are the books that will help them learn new things:

2.1. Java: The Complete Reference

This book is written by Herbert Schildt and it has 11 Editions, this book is showing us everything we need to know about developing, compiling, debugging, running Java applications and so on. In this book you will find complete details on Java language, Java classes, libraries, and basically everything you need to know above beginners level.

Java Complete Reference

2.2. Java Performance

This book is written by Scott Oaks and in this book you will get a deeper knowledge of Java application performance using JVM (Java Virtual Machine) and the Java platform, including the language and API. This book is also interesting because both developers and performance engineers will learn varieties of features, tools and processes for improving Java 7 and Java 8 applications.

Java Performance

2.3. Effective Java

This book is written by Joshua Bloch and it is perfect for someone who wants to deeper understand Java programming language, and that is useful for clearer, more correct and reusable codes. This book brings together all 78 programmers rules.

Effective Java

3. Advanced Books

This section is for developers who has a lot of experience in Java and they want to learn more complicated things than "Advanced" section can provide, here are some of the books that can provide such knowledge:

3.1. Java Puzzlers: Traps, Pitfalls and Corner

This book is written by Joshua Bloch and Neal Gafter and this book, provides a collection of 95 puzzles that explains the Java programming language, and it is really complicated.

Java Puzzles

3.2. Java Programming: Learn Advanced Skills from a Java Expert

This book is written by Poornachandra Sarang and this book will let you develop your skills of Java language with guides from experts and real-world code samples and detailed instructions. It also demonstrates how to fully understand features of Java SE .

Java Programming

And that is it, these are the best java books for each skill level. Hopefully these will help you understand Java even more, whether it is Java for beginners or experts.