This document provides a quick comparison of [Kotlin] to *Java*. h3. Fixes Safety problems in *Java* that are fixed in [Kotlin]: * Null references are controlled by the type system, i.e. [Kotlin] has [no {{NPE}}'s|Null-safety] * Full type information is [retained at runtime|Generics#Reified generics], i.e. better reflection/safer instanceof-checks * [No raw types|Java interoperability#Java generics in Up] * Arrays in [Kotlin] are [invariant|Basic types#Arrays] Usability problems in *Java* that are fixed in [Kotlin]: * [Kotlin] has [higher-order functions|Functions#Higher-order functions], aka closures ** And with [inlining|Functions#Inline functions] they are cheap * [Use-site variance without wildcards|Generics#Type projections] * [Declaration-site variance|Generics#Declaration-site variance] * [Kotlin] has [no checked exceptions|Exceptions] h3. What Java has and [Kotlin] has not * [Checked exceptions|Exceptions] * [Primitive types|Basic types] that are not objects * [Static members|Classes and Inheritance#Class objects] * [Non-private fields|Properties And Fields] * [Type erasure|Java interoperability#Java generics in Up] * [Wildcard-types|Generics#Variance] h3. What [Kotlin] has and Java has not * [Function literals] + [Inline functions|Functions#Inline functions] = performant custom control structures * [Null-safety] * [Smart casts|Type casts] * [String templates|Strings#Templates] * [Properties|Properties And Fields] * [Primary constructors|Classes and Inheritance#Primary constructors] * [Mixins and First-class delegation|Classes and Inheritance#Inheritance] * [Extension functions] * [Type inference for variable and property types|Basic syntax walk-through#Define a local variable] * [Singletons|Object expressions and Declarations] * [Declaration-site variance & Type projections|Generics#Variance] * [Modules|Modules and Compilation] * [Range expressions|Ranges] * [Pattern matching] * [Generic types retained at runtime|Generics#Reified generics] * [Operator overloading] * [Class objects|Generics#Class objects] h3. What's next * [Comparison to Scala]