Ted Neward is looking for the best Java resources so I figured I would answer in blog form, since that’s how I roll.
Books
If I ran into a Java programmer that needed to kick it up a notch I would recommend the following books as three to grow on. Any Java head working today is doing themselves a disservice if they haven’t read these.
- Effective Java (2nd ed) by Bloch – more useful Java advice than you’ll find in any other shelf of books
- Java Concurrency in Practice by Goetz et al – great freaking book not just on the Java concurrency libs but on concurrency in general
- Java Generics and Collections by Naftalin and Wadler – excellent overview of both topics
Web resources
There are of course a near-infinite number of these but here are some that I actually use which probably says something. These are in no particular order.
- Angelika Langer’s Generics FAQ – a scary tour de force answer to every generics corner case and question
- Bill Pugh’s Java Memory Model page – many many fine links
- Doug Lea’s home page – a great resource for many Java and concurrency related links
- JSR 166 home page – ongoing work on the Java concurrency libs
- Java 7 page – I’ll humbly submit my own Java 7 page and the linkblog referenced within as the best way to stay up to date on Java 7 related topics
- Java Specialist’s newsletter
- Java Black Belt – Java exams
- Lazy initialization of map values – a highly unknown but useful summary from Doug Lea
- JVM Option list – excellent summary
- JVM -XX options – even more completer :)
- JavaLobby / JavaZone
Mailing lists
Much useful discussion occurs on mailing lists these days, slightly out of the over-exposed and touchy blogosphere. Some of my favorites:
- jvm-languages – implementation of various languages on the JVM
- javamemorymodel – obviously discussion of the Java Memory Model
- concurrency-interest – Java concurrency discussion
I won’t even try to touch on tools or frameworks as that would be suicide. Hope some of the above are interesting to others.