1.1. Типы Java программ.

Программы, разработанные на языке программирования Java, можно разделить по своему назначению и функциональности на две большие группы:

Самостоятельные программы (назовём их приложения Java), работающие независимо на локальном компьютере.

Апплеты (applets), работающие в Internet. [2]

В настоящее время работа Java поддерживается всеми основными компьютерными платформами. Самостоятельное приложение, предназначенное для автономной работы, компилируется и выполняется на локальной машине под управлением системы времени выполнения Java. Java вполне подходит для написания приложений, которые с тем же успехом могли быть написаны на С, С++, Basic, Delphi или любом другом языке программирования.

Апплеты, которые и обеспечивают этому языку его популярность представляют собой разновидность приложений Java, которые интерпретируются Виртуальной Машиной Java, встроенной практически во все современные браузеры.

Каждый апплет — это небольшая программа, динамически загружаемая по сети с Web сервера при открытии в браузере HTML страницы, в которой имеется ссылка на апплет — точно так же, как картинка, звуковой файл или элемент мультипликации. Главная особенность апплетов заключается в том, что они являются настоящими программами, а не очередным форматом файлов для хранения мультфильмов или какой-либо другой информации. Апплет не просто проигрывает один и тот же сценарий, а реагирует на действия пользователя и может динамически менять свое поведение. С помощью апплетов вы можете сделать страницы сервера Web динамичными и интерактивными. Апплеты позволяют выполнять сложную локальную обработку данных, полученных от сервера Web или введенных пользователем с клавиатуры. Для повышения производительности апплетов в браузерах используется компиляция "на лету"- Just-In-Time compilation (JIT). При первой загрузке аплета его код транслируется в обычную исполнимую программу, которая сохраняется на диске и запускается. В результате общая скорость выполнения аплета Java увеличивается в несколько раз. Из соображений безопасности апплеты (в отличие от обычных приложений Java) не имеют никакого доступа к файловой системе локального компьютера. Все данные для обработки они могут получить только от сервера Web.


1.2. Этапы подготовки исполняемой программы.

Безопасность.


Исходный файл на языке Java - это текстовый файл, содержащий в себе одно или несколько описаний классов. Транслятор Java предполагает, что исходные тексты программ хранятся в файлах с расширениями java. Получаемый в процессе трансляции байт-код для каждого класса записывается в отдельном выходном файле, с именем совпадающем с именем класса, и расширением class. Именно сlass-файлы, содержащие байт-код, интерпретируются системой времени выполнения Java в машинный код конкретной системы. Прежде всего байт-код Java загружается в систему времени выполнения загрузчиком классов. Загрузчик классов отвечает за то, чтобы были загружены все классы, необходимые для выполнения приложения. Затем байт-код проверяется верификатором байт-кода на отсутствие операций, которые могли бы нарушить безопасность системы или вызвать в ней аварийную ситуацию. Важно отметить, что загрузчик классов и верификатор байт-кодов не делают никаких предположений относительно происхождения кодов  получены они с локальной файловой системы или с другого континента. Верификатор гарантирует, что любой код, прошедший проверку, может быть использован интерпретатором без риска повредить его (интерпретатор), а именно:

не может произойти переполнение или "исчерпание" стека

параметры для инструкций байт-машины имеют нужный тип

доступ к полям и методам объектов не нарушает объявленных в классе правил (public, private, protected)

После такой проверки на безопасность байт-код интерпретируется в машинный код и запускается на выполнение интерпретатором. Причём классы, полученные локально (заслуживающие безусловного доверия), и классы, присланные по сети из остального мира (и потенциально враждебные), находятся в разных пространствах имён. При разрешении ссылки на какой-либо класс он ищется прежде всего в локальном пространстве. Это не позволяет "внешним" кодам подменить один из базовых классов в системе. Также в процессе интерпретации происходит подключение необходимых библиотек (файлы с расширением jar). Весь описанный процесс исполнения Java программ изображён на рис. 1.

Рис. 1. Процесс создания работающего Java-приложения


Как уже было сказано выше, технология Java предполагает лёгкую переносимость программных продуктов с одной платформы на другую. Такую степень лёгкости переноса не обеспечивает ни какой язык программирования. На рис. 2 показвно, как приложение, изначально разработанное на языка С для Windows NT, переносится на платформу Apple Macintosh.


Платформа Windows NT Платформа Apple Macintosh

Изменение исходного

текста программы

Программа на С

Программа на С



Компилятор и редактор связей

Компилятор и редактор связей




Загрузочный модуль

Загрузочный модуль



Рис. 2. Перенос приложения с платформы Windows NT

на платформу Macintosh


Вначале программист готовит исходные тексты приложения для платформы Windows NT и отлаживает их там. Для получения загрузочного модуля исходные тексты компилируются и редактируются. Полученный в результате загрузочный модуль может работать на процессоре фирмы Intel в среде операционной системы Windows NT.

Для того чтобы перенести приложение в среду операционной системы компьютера Macintosh, программист вносит необходимые изменения в исходные тексты приложения. Эти изменения необходимы из-за различий в программном интерфейсе операционной системы Windows NT и операционной системы, установленной в Macintosh. Далее эти исходные тексты транслируются и редактируются, в результате чего получается загрузочный модуль, способный работать в среде Macintosh, но не способный работать в среде Windows NT.

Программа на языке Java компилируется в двоичный модуль, состоящий из команд виртуального процессора Java (Виртуальная машина Java). Такой модуль содержит байт-код, предназначенный для выполнения Java-интерпретатором. На настоящий момент уже созданы первые модели физического процессора, способного выполнять этот байт-код, однако интерпретаторы Java имеются на всех основных компьютерных платформах. Разумеется, на каждой платформе используется свой интерпретатор, или, точнее говоря, свой виртуальный процессор Java.

Если приложение Java (или апплет) должно работать на нескольких платформах, нет необходимости компилировать его исходные тексты несколько раз. Можно откомпилировать и отладить приложение Java на одной, наиболее удобной платформе. В результате получится байт-код, пригодный для любой платформы, где есть виртуальный процессор Java.

Сказанное иллюстрируется на рис. 3.


Платформа Windows NT Платформа Apple Macintosh

Приложение Java

Виртуальный процессор Java



Транслятор

Платформа Sun Solaris

Виртуальный процессор Java



Байт-код



Рис. 3. Подготовка приложения Java для работы на разных платформах

Таким образом, приложение Java компилируется и отлаживается только один раз, что уже значительно лучше. Остается, правда, вопрос - как быть с программным интерфейсом операционной системы, который отличается для разных платформ?

Здесь разработчиками Java предлагается достаточно неплохое решение. Приложение Java не обращается напрямую к интерфейсу операционной системы. Вместо этого оно пользуется готовыми стандартными библиотеками классов, содержащими все необходимое для организации пользовательского интерфейса, обращения к файлам, для работы в сети и так далее.

Внутренняя реализация библиотек классов, разумеется, зависит от платформы. Однако все загрузочные модули, реализующие возможности этих библиотек, поставляются в готовом виде вместе с виртуальной машиной Java, поэтому программисту не нужно об этом заботиться. Для операционной системы Windows, например, поставляются библиотеки динамической загрузки DLL, внутри которых запрятана вся функциональность стандартных классов Java.

Абстрагируясь от аппаратуры на уровне библиотек классов, программисты могут больше не заботиться о различиях в реализации программного интерфейса конкретных операционных систем. Это позволяет создавать по-настоящему мобильные приложения, не требующие при переносе на различные платформы перетрансляции и изменения исходного текста.

Еще одна проблема, возникающая при переносе программ, составленных на языке программирования С, заключается в том, что размер области памяти, занимаемой переменными стандартных типов, различный на разных платформах. Например, в среде операционной системы Windows версии 3.1 переменная типа int в программе, составленной на С, занимает 16 бит. В среде Windows NT этот размер составляет 32 бита.

Очевидно, что трудно составлять программу, не зная точно, сколько имеется бит в слове или в байте. При переносе программ на платформы с иной разрядностью могут возникать ошибки, которые трудно обнаружить.

В языке Java все базовые типы данных имеют фиксированную разрядность, которая не зависит от платформы. Поэтому программисты всегда знают размеры переменных в своей программе.


Глава 2. Введение в Java



Информация о работе «Язык Java»
Раздел: Информатика, программирование
Количество знаков с пробелами: 46208
Количество таблиц: 7
Количество изображений: 1

Похожие работы

Скачать
55352
3
15

... на Java. 5.         Алексей Литвинюк. Введение в интегрированную среду разработки Eclipse — http://lib.juga.ru/article/articleview/174/1/69/. Приложение 1. Встроенные типы данных и основные конструкции языка   Константы В языке Java можно записывать константы разных типов в разных видах. Перечислим их. Целые Целые константы можно записывать в трех системах счисления: ·           в ...

Скачать
22486
0
3

... -position – позиционирование заднего фона. background-image – ссылка на объект для заднего фона. background-repeat – способы отображения заднего фона. Литература 1.   Картузов А.В. Программирование на языке JAVA 2002 г. 2.   Управление сценариями просмотра Web-страниц Павел Храмцов, статья из ComputerWorld 3.   JavaScript и Navigator 3.0 Павел Храмцов, статья из ComputerWorld 4.   Язык ...

Скачать
22772
0
6

... =#989898>  <TABLE cellSpacing=1 cellPadding=0 width=119 align=middle>Эта регистрация- чистая формальность.<BR> Она создана для демонстрации Java Script<TBODY>  </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD> <TD vAlign=top bgColor=#efdfff height="100%"> <TABLE height="100%" cellPadding=5 ...

Скачать
27684
3
5

... , а Java машина всегда будет работать с данными, записанными в формате языка Java. 5. Описание практической части Прототипная реализация выполнена посредством связывания вызова подпрограммы, реализованной на языке Fortran, из Java-программы через язык С (JNI). В настоящее время окружение Java не предоставляет возможности вызывать напрямую подпрограммы, реализованные на языке Fortran. Реализация ...

0 комментариев


Наверх