В чем разница между Compile time и Runtime

«В чем разница между Compile time и Runtime» — вопрос из категории Java, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Compile time — это этап, когда код компилируется в байт-код или машинный код. Ошибки на этом этапе (например, синтаксические или типовые в Kotlin) обнаруживаются до запуска приложения.

Runtime — это время выполнения программы. Ошибки здесь (например, NPE или ClassCastException) возникают уже при работе приложения.

Пример:

val str: String = null // Compile error (non-null type)
val length = str.length // Runtime NPE if str is null

Compile time проверки помогают избежать многих runtime ошибок. Kotlin с его null-safety — отличный пример этого.