I've been using Java for several years, but have never really yet felt the need for an IDE. I've toyed with Eclipse a bit, but for the most part my projects have been small enough that I've just done them in vim. At work I've begun using Java much more heavily, and have been introduced to IntelliJ IDEA. I really like it so far, and it's making me wonder how I ever made do without the awesome code completion and refactoring features of a great Java IDE. I've had a hard time finding a really good comparison of recent versions of the major IDEs (Eclipse, NetBeans and IntelliJ), so for those of you who have used a few different Java IDEs (or even those who have only used one), what are your favourite features, or the things you most missed when you switched IDEs. Which one would you recommend to someone new to the world of Java IDEs who hasn't yet developed too strong an allegiance?