+3  A: 

FindBugs has been endorsed by Joshua Bloch in an interview. But, no, FindBugs does not specifically test for the items mentioned in Effective Java.

Paul Reiners
A: 

Check out SourceMonitor (http://www.campwoodsw.com/sourcemonitor.html). I have used it for C++ and ActionScript with really useful results. It supports Java too but I have not tested that particular language. (Actionscript is not officially supported but it's pretty easy to fool the tool to accept AS as Java)

+3  A: 

IntelliJ IDEA has a lot of these Bloch's recommendations in its static analysis. But not as many as I (or you, I suspect) would like.

Steve McLeod
+2  A: 

Short answer is - you're going to be writing them yourself with plugins like Checkstyle custom checks http://checkstyle.sourceforge.net/writingchecks.html

hawkeye
+1  A: 

It depending on what you are looking for an why. If you are looking to find bugs or confusing code constructs then FindBug and PMD do a good job. IMHO IntelliJ does a better job as it has quick fixes for many of them as well.

The other day I ran PMD on a project as it found 12,000+ warnings. But what is the point in finding so many if you cannot fix them easily. By using IntelliJ I had this down to 4,000 in an afternoon without having to make many of the changes myself (and therefor introducing new bugs) BTW: Most of the time was spent rebuilding and testing my changes hadn't broken anything.

Specificly targeting Effective Java is likely to be ignoring most of the issue worth addressing in your code. This is because these tool will pick up many things more basic than Effective Java covers.

Peter Lawrey