英文原文:http://www.programcreek.com/2013/08/top-books-for-advanced-level-java-developers/
java语言是当今最受欢迎的编程语言之一。对于初学者来说,有许多有关这样的书籍。但是对于有一些java编程经验的程序员来说,其中有些书过于简单,有些又是过于繁琐。所以这些入门书籍并不会带来新鲜感,激发一些有意思的灵感。然而,java编程的高级书籍并不是很容易写出来的,并不是因为写这些书需要多少技术,多少经验,而是这些是要内功深厚的人才能写出来的。
在这篇文章中,笔者仅仅拿出java高级编程的书籍与大家分享我的看法,这就意味着,像“Thinking in Java” 或是 “Head First Java”并不会出现在这个表单中,即使它们对于初学者来说真的是很好的书。当然,笔者也会尽量避免所列出的书籍仅仅局限于特定的软件或是框架,因为笔者所说的并不是纯java。
1、Java in a Nutshell

与其说这是一本书籍,倒不如说这是一份参考资料。
2、Effective Java

这本书是为深入理解java的程序员所准备的。它将78种不可或缺的编程规则玩弄与指尖之中:编程中最佳的运行方案、最佳的解决方案挑战着你每天所见到的认为最佳的。
3、The elements of Java style

这本书是针对想用java编程的人员来写,它为java程序员提供了一系列规则,标准、约定和参考,并且通过举例子的方式来指导java程序员如何编写出容易理解的、易维护的、可扩张的健壮性的代码。
4、Java Concurrency in Practice

想把这本弄明白是真的是很困难的一件事情。
5、Design patterns: elements of reusableobject-oriented software

实际上,这本书中的例子是用c++或是smalltalk编写的,但是那有怎样呢?如果你想成为java开发人员,你就必须得了解设计模式,充分利用别人的经验,还要从那些面临相同的人身上吸取教训。当然,还有许多这样的书籍,不过它们也仅仅做一些补充性的工作。
6、The Pragmatic Programmer: From Journeyman to Master

再次重申,这并不是只针对java程序员的书籍。这本书最大的用处是能够让代码简练、易阅读。这本书可以帮助你继续提升你的编程能力,
7、Patterns of Enterprise Application Architecture

也许你对设计模式有所了解,但是可能不大知道如何在企业级的框架中运用。这本书会告诉你企业级设计模式的共同特点。
8、Refactoring: Improving the Design of Existing Code

如果你已有多年的编程经验,那么这一本书真的很适合你读。代码重构会让你所写的代码更易于阅读,更易于维护。
9、OSGi in Action: Creating Modular Applications in Java

或多或少的说,知道面向服务的编程的知识是很有用的。本书的第一部分的几个章节会给你介绍以及给出具体的例子。
10、Clean Code: A Handbook of Agile Software Craftsmanship

最后一本,但也是很重要的一本。查看你自己编程的特点也是很有用的。开发软件中大约90%的时间都是花在了代码的维护上,所以保持简练的代码是很重要的。