What modes are the best?
And any tips or tricks that make developing java in emacs a bit better.
For anything else than casual Java editing, many people recommend the Java Development Environment for Emacs.
Eclim is a project that uses eclipse running in headless mode to provide features to Emacs such as in-line error checking, auto import management, basic refactoring, etc. It's much easier than JDEE to set up and when paired with something like YASnippet I find myself more productive than I was in Eclipse. I currently have to go back for step through debugging and some project management, but I am pretty happy with it. If combined with something like JDIbug I think I would have even less reason to ever use eclipse directly.
Hope this helps
The best Java debugger for Emacs I've used is jdibug.
I have used JDEE over two years.Unfortunately,it was too old and stopped.JDEE doesn't support new features since Java 5,e.g, we can't create enum type using JDEE. And the author didn't answer any questions.I am still using Emacs+JDEE,but I can't see the future of JDEE.
Java refactoring for emacs: