ЧаВО по материалам форума
Java на Исходниках.Ру

Составители: Angie, d_k
Редактор: d_k



Концепция и особенности создания Java-программы, JVM. (Angie)
Исходник программы, написанный на языке Java проходит все обычные этапы до создания выполняемого файла, но тут есть одна особенность, присущая только Java-программам: при компиляции программа компилируется не в команды какго-то конкретного процессора, а в команды, т. н. виртуальной машины Java (JVM, Java Virtual Machine).

Она (виртуальная машина) предсталяет собой совокупность команд вместе с системой их выполнения. JVM полностью стековая, так что не требуется сложная алресация ячеек памяти и большое количество регистров. Поэтому команды JVM короткие, большинство из них имеет длину 1 байт, отчего команды JVM называют байт-кодами (bytecodes), хотя имеются команды длиной 2 и 3 байта. Полное описание команд и всей архитектуры JVM можно прочесть в спецификации виртуальной машины Java (VMS, Virtual Machine Specification).

Еще одна особенность Java - все стандартные функции, вызваемые в программе, подключаются к ней только на этапе выполнения, а не включаются в байт-коды. Происходит динамическая компоновка (dynamic binding). Это достаточно сильно уменьшает объем откомпилированной программы.

Компиляция Java-программы не зависит от типа какого-либо конкретного компьютера. Она (компиляция) может выполниться один раз после написания программы. Таким образом для запуска Java-программы на компьютере только должна быть установлена JVM. При этом не важен ни тип процессора, ни конфигурация системы. Так реализуется принцип Java "Write once, run anywhere" - "Написано однажды, выполняется где угодно".



Содержание