Java is one of the most popular programming language nowadays. There are plenty of books for beginners. But to those who have programmed with Java for a while, some of them may look redundant. However, advanced Java books are not always right at hand, not partially because they require more skills, experienced, and deep thinkers to write.

This post provides a book list for experienced Java developers. Books like "Thinking in Java" or "Head First Java" won't be listed although they are very good for beginners.

Effective Java

This book is really only for deeper understanding Java developer. It brings together seventy-eight indispensable programmer’s rules of thumb: working, best-practice solutions for the programming challenges you encounter every day.

The elements of Java style

It is directed at anyone who writes Java code, by furnishing a set of rules for Java practitioners, by offering a collection of standards, conventions, and guidelines for writing solid Java code, and by illustrating how to write solid Java code that will be easy to understand, maintain, and enhance.

Java Concurrency in Practice

This is one of the hardest things to get right.

Programming Pearls

Programming Pearls is a very good book discussing how to think and solve problem as a programmer.

Patterns of Enterprise Application Architecture

You may have learned design patterns, but not sure how they are used in enterprise frameworks. This book explains common enterprise design patterns.

Refactoring: Improving the Design of Existing Code

If you have programmed for years, you will find this book definitely worth to read. Refactoring can make code more readable and easier to maintain.

OSGi in Action: Creating Modular Applications in Java

For more or less, it is good to know service oriented programming. The first several chapters of this book can give you a nice introduction and concrete examples.

Clean Code: A Handbook of Agile Software Craftsmanship

Last but not least, it is always good to review your coding style. 90% of effort will be spent on maintenance, it is extremely important to make clean code.

Algorithm in Java

A little advertisement for myself. This book is a collection of popular algorithm questions from ProgramCreek. Download Link.

There are other good books for advanced Java developers. If you think any other book should be here, please leave your comment. I will combine them later here.