Smart completionCtrl+Shift+Space gives you a list of the most relevant symbols applicable in the current context. This and other completions are constantly learning from you, moving the members of the most frequently used classes and packages to the top of the suggestions list, so you can select them faster.

Chain completionDigs a tad deeper than Smart Completion and lists applicable symbols accessible via methods or getters in the current context. Say you're looking for a value of Project and only have the Module module declaration. Press Ctrl+Shift+Space twice to get module.getProject() without any additional effort.

Language injectionBrings coding assistance for a selected language to expressions and string literals in another one, complete with all advantages you would normally have. For example, you can inject fragments of SQL, XPath, HTML, CSS, or javascript code into Java String literals.

Cross-language refactoringsKnowing everything about usages of a symbol, IntelliJ IDEA offers extremely effective, thorough refactorings. For example, when you Rename a class within a JPA statement, it will update everything, from JPA entity class, to every JPA expression where it is used.

Detecting duplicatesFinds duplicate code fragments on the fly. Even if you're only about to extract a variable, constant, or a method, IntelliJ IDEA will let you know that there is a similar code fragment that can be replaced along with the one you're woking on.

Inspections and quick-fixesWhenever IntelliJ IDEA detects that you're about to make a mistake, a little lightbulb pops up in the editor. Clicking it or pressing Alt+Enter opens a list of actions you can take to make things right.

Developer ergonomicsEvery aspect of IntelliJ IDEA is designed with ergonomics in mind. IntelliJ IDEA is built on a principle that every minute a developer spends in the flow is a good minute, and things that break developers out of that flow are bad and should be avoided.