Как отличается совместимость JVM с архитектурой ЦП от компилятора для архитектуры ЦП?

В моем стремлении понять причину использования Java поверх C ++ или наоборот для написания приложений я застрял на этом одном моменте. Я посмотрел видео, знакомящее меня с Java, и они сказали, что причина существования JVM в том, что он делает Java переносимым, то есть он работает на многих архитектурах, таких как телефоны и прочее, без необходимости написания нового компилятора для каждой отдельной комбинации ОС процессора. Но люди должны что-то делать, чтобы сделать это совместимым с каждым процессором и ОС. Я не вижу, как использование JVM что-то меняет.

5

Решение

Начальные (бета-версии) Java были высмеивали за то, что «напиши один раз, проверь везде». Улучшение качества программного обеспечения на начальных платформах (SunOS / Solaris, Windows, Mac и т. Д.) Значительно повысило его переносимость (и портативное программное обеспечение по сути проще портировать). В настоящее время существует несколько реализаций Java (IBM, JRockit и т. Д.).

По сути, Java является Спецификация виртуальной машины, которая выполняет байт-коды; а также не любая конкретная реализация. Поскольку байт-код одинаков для всех платформ, компилятор Java не нужно изменять для поддержки новых платформ. Кроме того, большая часть OpenJDK (и, таким образом, Oracle JVM) написана на Java. В принципе, самонастройки Java упрощена по сравнению с начальной загрузкой компилятора для «настоящей» архитектуры процессора1.

1За исключением процессоров, которые нативно выполнять байт-код Java.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]