В Java переменные объявляются с указанием типа и могут быть изменяемыми (обычные переменные) или константами (с помощью ключевого слова final). Например:
Модификатор доступа internal в Kotlin ограничивает видимость элемента (класса, функции, свойства) рамками одного модуля. Модуль — это обычно один Gradle-модуль или единица компиляции.
В Kotlin создание анонимных экземпляров классов обычно реализуется с помощью анонимных объектов. Это позволяет создать объект, наследующийся от класса или реализующий интерфейс, без явного объявления нового класса.
Object expressions (анонимные объекты) используются для создания объектов анонимных классов. Они полезны для реализации одноразовых интерфейсов или наследования от классов в одном экземпляре. Синтаксис object : <тип(ы)>.
Context receivers позволяли объявить требуемые контекстные объекты и использовать их как неявные ресиверы. В старом экспериментальном синтаксисе это выглядело так:
when в Kotlin — это конструкция ветвления, который заменяет классический switch в других языках. Он может использоваться как выражение (возвращая значение) или как оператор.