Spec-Zone.ru › Kotlin 1.9

Сравнение с Java

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

Kotlin исправляет ряд проблем, с которыми сталкивается Java:

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

  • Нет типов raw

  • Массивы в Kotlin неизменяемы

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

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

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

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

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

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

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

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

  • Тernary-оператор a ? b : c заменяется выражением if.

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

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

  • Расширяющие функции

  • Безопасность при работе с null

  • Умные преобразования типов

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

  • Свойства

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

  • Делегирование высшего порядка

  • Вывод типов для переменных и свойств

  • Синглетоны

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

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

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

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

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

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

  • Корутины

Что дальше?

Научитесь:

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

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

  • Обращаться с необязательностью в Java и Kotlin.

Последнее изменение: 03 октября 2022
Начало работы с Kotlin/JVM Вызов Java из Kotlin

© 2010–2023 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