Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #65, АПРЕЛЬ 2006 г.

дружественная ява

ЕВГЕНИЙ AKA SATURN

Спецвыпуск: Хакер, номер #065, стр. 065-038-2


Исходный модуль, написанный на Java, компилируется в команды виртуальной машины. Она полностью стековая, так что не требуется сложной адресации ячеек памяти и множества регистров. В результате команды JVM получаются короткими, их средняя длина составляет 1,8 байта (большинство команд имеют длину 1 байт, поэтому их называют байт-кодами). Еще одна особенность Java — то, что стандартные функции, вызываемые в программе, не включаются в байт-коды. Вместо этого используется процедура, называемая динамической компоновкой, — подключение функций лишь на этапе выполнения. Так уменьшается объем откомпилированной программы.

На первом этапе программа, написанная на языке Java, переводится компилятором в байт-коды. Эта компиляция не зависит от архитектуры компьютера, типа процессора и операционной системы. Байт-коды записываются в один или несколько файлов, и над ними (именно в таком виде) могут производиться стандартные операции (запись на внешний носитель, передача по Сети, копирование). Далее можно выполнять байт-коды на любой системе, реализующей Java Virtual Machine. Получается, что виртуальная машина «берет на себя» все особенности той или иной архитектуры, что позволяет запускать одно и то же приложение на персональном компьютере, КПК и мобильном телефоне.

[к минусам архитектуры] можно отнести медленное выполнение программ, причину которого нужно искать в интерпретации байт-кодов и динамической компоновки. В общем случае для выполнения Java-программ требуется вычислитель более мощный (здесь речь идет не о компьютере, а о любой вычислительной машине), чем для аналогичных задач на C/C++. Но Sun не стоит на месте и постоянно совершенствует интерпретаторы, стремясь повысить скорость. Существуют JIT-компиляторы (Just-in-Time), которые запоминают уже интерпретированные участки кода в машинных командах процессора и выполняют эти участки при повторном обращении, например, в циклах. Результат — значительное увеличение скорости повторяющихся вычислений.

[реализации виртуальных машин Java] созданы практически для всех платформ. Для самых распространенных существуют реализации от разных фирм-производителей. Все больше операционных систем и СУБД включают в свое ядро реализацию JVM. Практически во все браузеры встроена виртуальная машина Java для выполнения апплетов.

Несмотря на революционную архитектуру, появление Javа (тогда еще Oak) не сопровождалось фурором в среде программистов. Однако ситуация изменилась после появления World Wide Web. В тот момент главный идеолог языка Патрик Нотон предложил использовать Java в среде WWW, был создан Java-браузер — WebRunner (позже переименован в HotJava). Шло время, Сеть проникала все глубже в человеческую жизнедеятельность, понадобилось подключать целый «зоопарк» устройств. Стали появляться различные Java-платформы. На этом моменте заканчивается история и начинается «сегодня», то есть наша реальность — существование нескольких платформ для различных применений. В 1999 году Sun анонсировала платформенные версии Java 2: Enterprise (J2EE), Standard (J2SE), Micro (J2ME).

Назад на стр. 065-038-1  Содержание  Вперед на стр. 065-038-3