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