Smart completion

Ctrl+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 completion

Digs 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.

Data flow analysis

Language injection

Brings 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 refactorings

Knowing 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 duplicates

Finds 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-fixes

Whenever 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 ergonomics

Every 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.

Editor-centric environment

Most of your time the editor (and the code) is the only thing visible on your screen, and you
don't need to leave it to do something that isn't coding-related.

Quick popups are helpful for checking additional information without leaving the context
that you’re in. When you press
Ctrl+Shift+I
it shows you the definition for the symbol at
caret.

To generate code, you don't have to walk through complex wizards or fill huge forms.

Shortcuts for everything

In IntelliJ IDEA you have dedicated keyboard shortcuts for nearly everything, including rapid selection and switching between tool windows and the editor.

Accessing a tool window via its shortcut moves the input focus to it, so you can use all
keyboard commands in its context. When you need to go back to the editor, just hit Esc.

When you're in the Project tool window, you can not only navigate through the existing items,
but also create new ones by just pressing Alt+Ins.

Ergonomic user interface

All lists, trees and popups in IntelliJ IDEA provide you with quick search that instantly
takes you to a set of items that contain text you’re typing in them.

The first call of any IDE action is supposed to provide most expected results. Need more results? Press the
shortcut again and the IDE will go deeper to find what you need.

Inline debugger

When you debug your code IntelliJ IDEA shows you variable values right in the source code,
next to their usages.

You don’t even have to hover the mouse over the variable, or switch to
the Variables pane of the Debug tool window.

Any time a variable changes its value, the IDE highlights it with a different color so that
you can better understand how the state is changed over the code.

Built-in developer tools

To streamline your workflow, IntelliJ IDEA offers an unbeatable toolset right from the first
start: decompiler, bytecode viewer, FTP and many more.

Version control

IntelliJ IDEA provides a unified interface for major version control systems including Git,
SVN, Mercurial, CVS, Perforce, and TFS. The IDE lets you browse the history of changes,
manage branches, merge conflicts and much more

Test runner and coverage

IntelliJ IDEA lets you perform unit testing with ease. The IDE includes test runners and coverage tools for major test frameworks,
including JUnit, TestNG, Spock; Cucumber, ScalaTest, spec2, and Karma.

Decompiler

IntelliJ IDEA comes with a built-in decompiler for Java classes. When you want to take a
look inside a library that you don't have the source code for, now you can – without any
third-party plugins.

Terminal

The IDE comes with a built-in terminal. Depending on your platform,
you can work with command line prompt, Far, powershell, or bash. Invoke the terminal with
Alt+F12 and execute any command–without leaving the IDE.

Database tools

Take advantage of intelligent coding assistance when editing SQL; connect to live databases;
run queries; browse and expert data; and even manage your schemes in a visual
interface–right from the IDE.