Spec-Zone.ru › Kotlin 1.8

Сравнение с Java

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

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

  • Ссылок на значения null предотвращает система типов.

  • Отсутствуют необработанные типы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Свойства

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

  • Делегирование первого класса

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

  • Синглетоны

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

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

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

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

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

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

  • Подпрограммы

Что дальше?

Научитесь:

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

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

  • Обрабатывать nullability в Java и Kotlin.

Последнее изменение: 10 января 2023
Начало работы с 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