На каком этапе компиляции возникает Java-код

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

Ответ

Java-код генерируется на этапе декомпиляции, когда мы преобразуем байт-код (.class) обратно в читаемый Java-код. Однако, если говорить о процессе компиляции:

  1. Исходный Java-код (.java) компилируется в байт-код (.class) с помощью javac.
  2. Байт-код выполняется JVM, но не преобразуется обратно в Java-код.

Пример декомпиляции с помощью jad или javap:

// Исходный код
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello");
    }
}

После компиляции в .class можно декомпилировать его обратно в Java.