Причины использования компиляции на лету в Java - PullRequest
1 голос
/ 22 марта 2010

Я видел, что некоторые пишут Java-файлы, а затем вызывают компилятор, Разве это не приводит к дополнительным расходам при работе в режиме выполнения?

Ответы [ 2 ]

6 голосов
/ 22 марта 2010

Компиляция во время выполнения добавляет немного накладных расходов - шаг компиляции (несколько) медленный.

Однако он добавляет огромную гибкость.Компилируя новый код для каждого запуска приложения, вы позволяете приложению изменяться в зависимости от того, что не может быть известно во время (до развертывания) «времени компиляции».

Это не то, что вам нужноделать нормально, но когда это уместно, это очень ценная, мощная техника.

1 голос
/ 22 марта 2010

Выполнение компиляции во время выполнения, очевидно, вносит некоторые накладные расходы, но, как указал Рид, идея состоит в том, чтобы использовать это для вещей, которые вы не знаете во время компиляции.

Но на самом деле, по словам Питера фонder Ahé, который стоит за JSR 199 - API компилятора (посмотрите его (прежний) блог или это интервью ), API компилятора Java на самом деле не для всех:

99% разработчиков Java должны знать что-либо об API компилятора Java (JSR 199).Небольшое количество разработчиков Java будут использовать API напрямую.Тем не менее, программное обеспечение, которое делают эти немногие разработчики, используется всеми разработчиками Java.Я говорю о программном обеспечении, таком как IDE (NetBeans, Eclipse, IntelliJ IDEA и т. Д.), Сервере приложений Java EE, построении инфраструктур, таких как Maven и Ant, и тестовых фреймах.Все эти части программного обеспечения имеют одну общую черту: все они должны вызывать компилятор для преобразования исходного кода Java в файлы классов.Однако 99% всех разработчиков не будут и не должны заботиться о том, как вызывается компилятор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...