Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему java компилируемый, а не интерпретируемый язык?

Дмитрий Узбеков Знаток (374), открыт 2 недели назад
Типо, если главная идея языка это мультиплатформенность, то в чем смысл делать язык компилируемый? Джава же все равно выполняется на виртуальной машине jvm. Можно же было вместо этой jvm нормальный интерпретатор сделать. Да и jvm все равно интерпретирует промежуточный байт код, который генерирует компилятор. Ну и в чем смысл вообще? Объясните, я не понимаю. Да и если бы этот язык был интерпретируемым, то производительность бы особо и не изменилась. Java же как была медленной кобылой, такой же медленной кобылой и осталось.
3 ответа
Семён Куликов Гуру (2675) 2 недели назад
 Ну и в чем смысл вообще?  
Java компилирует в свой специальный код, который потом интерпретирует JVM. Ну чтобы место мало занимала программа на жёстком диске, и чтобы исходники не украли. Хотя к сожалению декомпиляция возможна.

Насчёт медленности, она не такая прям и медленная, там есть JNI можно код на Си++ откомпилировать, и потом эту нативную библиотеку подключить к проекту. См. https://java-course.ru/articles/jni/ JNI это некая прослойка между Windows и JVM.
Семён КуликовГуру (2675) 2 недели назад
Нет наверное скорей всего JNI это некая прослойка между Windows и Java приложением, так будет имхо лучше.
ПапаВысший разум (125511) 2 недели назад
Лучше бы задал встречный вопрос: в чём смысл идиотского вопроса?
Red Мастер (1007) 2 недели назад
Почти все интерпретируемые языки работают также. Есть компилятор и виртуальная машина. Просто они неразделимы и существуют только вместе. А вот у Java есть разные виртуальные машины(OpenJ9, Hotspot, OJVM, Dalvik). Интерпретация без генерации байт-кода работала бы ну очень медленно.
Похожие вопросы