As the title says, 97 essays on useful things to know. You might even find my name on the list of contributors.
How to design programs that work, and work well together.
Allen Downey and Chris Mayfield$49.99 $46.49
Undergraduate CS course book in Java.
Ian Darwin$79.99 $74.39
My own contribution: how to perform common (and a few not-so-common) tasks in modern Java. Updated for Java 11-14.
Elisabeth Robson and Eric Freeman$79.99 $74.39
How to use Design Patterns to make your software more reliable and maintainable.
Joseph Bowbeer, David Holmes, et al.$59.99 $55.79
Every dev needs to understand concurrency, and many need help to understand. This book provides it.
Kenny Bastani and Josh Long$76.99
Title tells all!
Scott Oaks$65.99 $61.37
Java generally has good performance, but there are cases where you need to improve it by altering your code. Use this guide.
Joshua Bloch and Neal Gafter$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, John Vlissides, 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.
Sander Mak and Paul Bakker$43.99
Sander shares his very detailed knowledge of modules, one of the biggest changes in recent Java history.
Pierre-Yves Saumont Saumont$49.99
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."
Boni Garcia$65.99 $61.37
Brand-new and I haven't read it yet, but it sounds delish.
Brian W Kernighan$18.95
C and Unix had a big influence on Java (t was developed on Sun's Unix and inherited syntax from C); Kernighan had a big influence on Unix, and tells its story here.