Java Developer's Bookshelf

By LHBooks

By LHBooks

97 Things Every Java Programmer Should Know: Collective Wisdom from the Experts

$44.99 $41.39

As the title says, 97 essays on useful things to know. You might even find my name on the list of contributors.

Head First Java

Kathy Sierra and Bert Bates

$59.99 $55.19

A good visual learner's introduction to the language.

Effective Java

Joshua Bloch


How to design programs that work, and work well together.

Java in a Nutshell: A Desktop Quick Reference

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.

Think Java: How to Think Like a Computer Scientist

Chris Mayfield and Allen B. Downey

$49.99 $45.99

Undergraduate CS course book in Java.

Java Cookbook: Problems and Solutions for Java Developers

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.

Head First Design Patterns: Building Extensible and Maintainable Object-Oriented Software

Eric Freeman and Elisabeth Robson

$69.99 $64.39

How to use Design Patterns to make your software more reliable and maintainable.

Java Concurrency in Practice

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.

Java Performance: In-Depth Advice for Tuning and Programming Java 8, 11, and Beyond

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.

Java Puzzlers: Traps, Pitfalls, and Corner Cases

Neal Gafter and Joshua Bloch


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.

Design Patterns: Elements of Reusable Object-Oriented Software

Ralph Johnson, Erich Gamma, et al.


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.

Java 9 Modularity: Patterns and Practices for Developing Maintainable Applications

Paul Bakker and Sander Mak


Sander shares his very detailed knowledge of modules, one of the biggest changes in recent Java history.

Functional Programming in Java: How Functional Techniques Improve Your Java Programs

Pierre-Yves Saumont


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."

Unix: A History and a Memoir

Brian W. Kernighan


C and Unix had a big influence on Java; Kernighan had a big influence on Unix, and tells its story here.