Sobes.tech
Back to questions
Junior — Middle
69

Какие отличия в системе типов есть между Java и Kotlin?

Answer from AI

sobes.tech AI

Java — язык со статической типизацией, где примитивные типы (int, boolean и т.д.) и ссылочные типы чётко разделены. В Kotlin типы более унифицированы: все являются объектами, включая аналоги примитивов, благодаря системе обёрток, которая оптимизируется компилятором.

Основные отличия:

  • Null-безопасность: В Kotlin типы по умолчанию не могут содержать null, чтобы избежать NullPointerException. Для nullable типов используется синтаксис с вопросительным знаком, например, String?.
  • Типы-параметры: Kotlin поддерживает более гибкую систему обобщений с variance (in, out), в Java это реализовано через wildcards.
  • Типы данных: Kotlin имеет расширенные типы, например, Unit вместо void, и поддерживает расширения типов.

Пример null-безопасности в Kotlin:

var a: String = "Hello"
// a = null // Ошибка компиляции

var b: String? = "Hello"
b = null // Допустимо