Spec-Zone.ru › Kotlin 2

Сравнение с Java

Некоторые проблемы Java, решённые в Kotlin

Kotlin решает ряд проблем, характерных для Java:

  • Ссылки на null контролируются системой типов.

  • Нет типов без параметров

  • Массивы в Kotlin инвариантны

  • В Kotlin есть полноценные типы функций, в отличие от SAM-преобразований в Java

  • Вариантность на месте использования без шаблонов

  • В Kotlin нет проверяемых исключений

  • Отдельные интерфейсы для коллекций только для чтения и изменяемых коллекций

Что есть в Java, но отсутствует в Kotlin

  • Проверяемые исключения

  • Примитивные типы, не являющиеся классами. В байт-коде используются примитивы, когда это возможно, но они недоступны явно.

  • Статические члены заменены на объекты-компаньоны, функции верхнего уровня, функции-расширения или @JvmStatic.

  • Типы с подстановочными знаками заменены на вариантность на месте объявления и проекции типов.

  • Тернарный оператор a ? b : c заменён на выражение if.

  • Записи

  • Модификатор видимости package-private

В Kotlin нет сопоставления с образцом, но умные приведения типов в Kotlin обеспечивают функциональность, аналогичную сопоставлению с образцом в Java.

Подробнее — в этом видео на официальном канале Kotlin от JetBrains.

Что есть в Kotlin, но отсутствует в Java

  • Лямбда-выражения + встроенные функции = эффективные пользовательские управляющие конструкции

  • Функции-расширения

  • Безопасность типов относительно null

  • Шаблоны строк

  • Свойства

  • Первичные конструкторы

  • Делегирование как конструкция первого класса

  • Вывод типов переменных и свойств (Java 10: Вывод типов локальных переменных)

  • Одиночки

  • Вариантность на месте объявления и проекции типов

  • Выражения диапазонов

  • Перегрузка операторов

  • Объекты-компаньоны

  • Классы данных

  • Коррутины

  • Функции верхнего уровня

  • Параметры со значениями по умолчанию

  • Именованные параметры

  • Инфиксные функции

  • Объявления expect и actual

  • Режим явного API и более точное управление поверхностью API

В Java нет умных приведений типов, но сопоставление с образцом обеспечивает функциональность, аналогичную умным приведениям типов в Kotlin.

Подробнее — в этом видео на официальном канале Kotlin от JetBrains.

Что дальше?

Узнайте, как:

  • Выполнять типичные операции со строками в Java и Kotlin.

  • Выполнять типичные операции с коллекциями в Java и Kotlin.

  • Работать с nullability в Java и Kotlin.

6 февраля 2026 г.
Переход на стиль кода KotlinВызов Java из Kotlin

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/comparison-to-java.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API