Smart Code Completion
Instant code completion means you get a suggestion without doing anything. Completion choices appear just as you type. This type of completion speeds up coding significantly.
Injected Code Completion
IntelliJ IDEA recognizes other languages inside string literals and provides code assistance for them too.
There are a lot of other completions supported in the IDE for completing punctuation, statements, paths, suggesting variable and constant names many others.
Check also The Top 20 Features of Code Completion on DZone for more details.
IntelliJ IDEA provides multiple completion techniques based on the context and user needs.
While basic completion helps you complete names of classes, methods, fields, and keywords within the visibility scope. Smart completion, on the other hand, suggests only those types that are expected in the current context.