In case of java the best imho is IntelliJ IDEA. It might be commercial but it saves me so many headaches.
I've tried Eclipse and keep trying it with every new release but I end up going back usually within 30min.
Eclipse has loads of features, mostly because of all the plugins. Which is both a good and bad thing.
It's a pain to find all the right plugins. I'd rather have everything I need or 99% of it available right away.
The thing is, featurewise Eclipse probably surpasses IDEA. Most people compare IDEA and Eclipse and say,
Eclipse can do that too and more. In practice you hardly need most of the extra features. IDEA rocks in
the usability department. It's hard to describe but IDEA never gets in my way, it only asks me stuff when it really
really has to and then lets me move on where I was in the first place. Eclipse on the other hand annoys the heck
out of me. It seems everything takes too many keystrokes and is placed just a menu too far away. Especially the
implementation of "quick fix" in Eclipse is imo terrible. An example comparing the quick fix in IDEA/Eclipse:
Type "Hashtable somen_"
You want to import Hashtable? Well, in Eclipse you have to move the cursor back to Hashtable which interrupts your workflow.
In IDEA you press alt+space and keep on typing. IDEA also automatically removes unused imports which in Eclipse it takes another
quick fix keystroke.
It's all the little things in IDEA that are amazing. I don't need all the fancy features that I'll never use. I rather save hundreds of
keystrokes each day. Eclipse just gets in my way. It forces me to work a certain way and always distracts me from what I'm doing
and that's coding. IDEA on the other hand takes care of most of the annoying work and lets me focus on the important stuff.
Of course it's a very personal opinion. Eclipse is a great editor and you can get all the work done. It's just not for me