Компилятор javac - статический компилятор?

372
21 февраля 2017, 17:04

Цитата из книги "Java. Новое поколение разработки":

"В техническом отношении с точки зрения теории компиляции байт-код — это действительно своеобразный промежуточный язык (intermediate language), а не настоящий машинный код. Это означает, что процесс преобразования исходного кода Java в байт-код не является компиляцией в том смысле, в каком она понимается в языках C и С++. В свою очередь, javac не назовешь таким же компилятором, как gcc. В сущности, это генератор файлов классов для обработки исходного кода Java. Настоящим компилятором в экосистеме Java является динамический компилятор (JIT)".

Правильно ли я понимаю, что, в то время как JIT - динамический компилятор, javac - статический компилятор?

Answer 1

Javac не является статическим компилятором. Потому, что он генерирует байт код, который уже в процессе выполнения программы будет динамически компилироваться в машинный код, или интерпретироваться.

Но в java 9 появится возможность генерировать машинный код до запуска программы.

READ ALSO
Передвижение машины на 10 метров

Передвижение машины на 10 метров

Дан метод move() - изначально он пуст, я его сам заполняю, который перемещает автомобиль на 1 метр вперед или назадПри перемещении вперед он вернет...

316
Overridden method does not throw

Overridden method does not throw

И для метода findAll() получаю следующие: overridden method does not throw javalang

305
Помощь по проекту [требует правки]

Помощь по проекту [требует правки]

У меня свой проект по Android Studio и это фото редактор, но я не знаю где взять рабочие фильтры для использованияКак сделать так,чтобы пользователь...

246
Как получить обычный String используя Retrofit 2?

Как получить обычный String используя Retrofit 2?

Хочу разобраться как работает Retrofit, но документация совсем скудная(может не там смотрю)

324