As the title says, 97 essays on useful things to know. You might even find my name on the list of contributors.
Kathy Sierra and Bert Bates$59.99 $55.19
A good visual learner's introduction to the language.
How to design programs that work, and work well together.
David Flanagan and Benjamin J. Evans$59.99 $55.19
Faster, dryer and more detailed than Head First Java. Great if you know another C-family language, though that's not a necessary precondition.
Chris Mayfield and Allen B. Downey$49.99 $45.99
Undergraduate CS course book in Java.
Ian F. Darwin$69.99 $64.39
My own contribution: how to perform common (and a few not-so-common) tasks in modern Java. Updated for Java 11-14.
Eric Freeman and Elisabeth Robson$69.99 $64.39
How to use Design Patterns to make your software more reliable and maintainable.
Doug Lea, Tim Peierls, et al.$59.99 $55.19
Every dev needs to understand concurrency, and many need help to understand. This book provides it.
Josh Long and Kenny Bastani$69.99
Title tells all!
Scott Oaks$59.99 $55.19
Java generally has good performance, but there are cases where you need to improve it by altering your code. Use this guide.
Neal Gafter and Joshua Bloch$49.99
Every programming language has some "interesting" corner cases. This book will explode your head as you try to figure out why some obvious things aren't so obvious.
Ralph Johnson, Erich Gamma, et al.$59.99
The classic work on Design Patterns, first released the same year as Java itself. Patterns apply to most OO languages; although the examples in the text are in C++ you can read them.
Paul Bakker and Sander Mak$39.99
Sander shares his very detailed knowledge of modules, one of the biggest changes in recent Java history.
While Java can never become a pure functional language, modern Java offers a lot of support for FP, and this book explores how to use that to become "a better Java developer."
Brian W. Kernighan$18.95
C and Unix had a big influence on Java; Kernighan had a big influence on Unix, and tells its story here.