Ответ
Java-код компилируется в байт-код — платформенно-независимый промежуточный формат, исполняемый виртуальной машиной (JVM).
Ключевые особенности:
- Хранится в файлах с расширением
.class. - Состоит из инструкций (opcodes), специфичных для JVM.
- Не является машинным кодом конкретного процессора, что обеспечивает кроссплатформенность.
- Для выполнения требует установленной JVM, которая интерпретирует или компилирует байт-код в машинный код (JIT-компиляция).
Пример:
Исходный код (Test.java):
public class Test {
public static void main(String[] args) {
System.out.println("Hello, JVM!");
}
}
После компиляции javac Test.java создается Test.class. Его байт-код можно просмотреть утилитой javap:
javap -c Test
Compiled from "Test.java"
public class Test {
public static void main(java.lang.String[]);
Code:
0: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream;
3: ldc #3 // String Hello, JVM!
5: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
8: return
}