2012-04-20 7 views
2

Как java интерпретируется и компилируется? Также когда создается файл .class между этой компиляцией и интерпретацией?Когда создается файл .class?

+1

[Это] (http://www.javaworld.com/javaworld/jw-07-1996/jw-07-classfile.html) может быть полезно. – sgowd

+0

@ sans481 Это было очень полезно для меня. Спасибо. – theJollySin

ответ

3

Простой ответ заключается в том, что интерпретатор Java использует в качестве входных файлов файлы .class, а .class - это машинный объектный код для «аппаратного обеспечения» виртуальной машины Java. Компилятор javac компилирует ваши .java-источники в объекты .class, а затем JavaVM может выполнять (интерпретировать) эти объекты.

+0

Мы теряем много кода записи мощности, который может быть выполнен на любой машине? Я сделал много Fortran, и я чувствую, что мне нужно беспокоиться о конкретной архитектуре моего машинного и вычислительного кластера, чтобы получить хорошую производительность (относительно скорости во время выполнения). – theJollySin

+0

Каждый раз, когда вы добавляете дополнительное программное обеспечение между кодом, который нужно запустить, и аппаратным обеспечением, будет некоторая потеря производительности; сколько зависит от конкретной JVM, которую вы используете. Некоторые JVM очень просты, они нуждаются в повторной интерпретации каждой инструкции каждый раз, когда она ее видит. Некоторые используют «JIT» (только во время компиляции) для преобразования инструкций в собственный код для повышения производительности во время выполнения. Другие выполняют «AOT» (компиляция по времени), чтобы повысить производительность. Однако в каждом случае виртуальная машина будет иметь некоторые накладные расходы. – mah

+1

Что-то еще, чтобы подумать об эффективности здесь, это напрямую не связано с использованием языка Java вообще. Термин «Java» используется для описания как языка, так и среды выполнения, но его можно скомпилировать Java на собственный код (например, с помощью компилятора GNU gcj), и можно использовать другие langauges для компиляции в .class-файлы для выполнения в рамках JVM. – mah

0

Создание файла .class - это этап компиляции, поэтому между ними нет ничего.

Файл .java скомпилирован в байт-код, который хранится в файле .class. Файл .class интерпретируется JRE.

1

Когда файл класса создан?

Ответ-> Файл класса, сгенерированный, когда компилятор запускает компиляцию и точно в это время интерпретатор (JRE) создает файл класса. Interpreter декодирует наше кодирование в двоичные коды (машинный язык), и этот двоичный код используется нашей системой или любой системой (машиной), или мы можем сказать любую операционную систему, такую ​​как linux, ubntu, windows, fadora.

+0

Я не думаю, что среда выполнения генерирует любой файл класса. Компилятор языка программирования Java (https://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html). – skubski

Смежные вопросы