Title: Think Java: How to Think Like a Computer Scientist (Version 5)
Author: Allen B. Downey
License: CC 3.0
Think Java is an introduction to Java programming for beginners. This book is for anyone who wants to learn Java.
The book discusses all the topics in brief but at the same time it is also very concise. It uses a subset of Java that lets students work on interesting projects without getting bogged down in the details of Java.
Think Java also teaches program development and debugging.