Ответ
В Kotlin можно использовать примитивы, но они автоматически оборачиваются в соответствующие классы (например, Int вместо int в Java). Kotlin оптимизирует это: при использовании в коллекциях или nullable-типах (Int?) будет класс-обёртка, а в обычных переменных — примитив JVM.
Пример:
val number: Int = 42 // На уровне JVM — примитив int
val nullableNumber: Int? = null // На уровне JVM — Integer
Важно: Kotlin не позволяет явно указать примитив (как int в Java), но компилятор сам выбирает оптимальное представление.