Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Выполнение Java-программы

Читайте также:
  1. II. Выполнение п р о ц е д у р ы
  2. II. Выполнение п р о ц е д у р ы
  3. Вопрос 52. Порядок подачи заявок на выполнение международного полета.
  4. Выполнение Java-программы
  5. ВЫПОЛНЕНИЕ ВКР, ЕЕ СТРУКТУРА
  6. Выполнение внутривенной инъекции
  7. Выполнение внутримышечной инъекции
  8. Выполнение жима лежа на максимальный результат. (3 часа).
  9. Выполнение жима лежа с гантелями.(2 часа).

Цель работы

Получить знания о технологии Java, области ее применения и назначении Java-машины.

Задание для домашней подготовки

Ознакомиться с материалом, предоставленным в данных методических указаниях (без отладки примеров).

 

Технология Java

Изначально Java (официальный день рождения технологии Java — 23 мая 1995 г.) предназначалась для программирования бытовых электронных устройств, таких как телефоны. Потом Java стала применяться для программирования браузеров — появились апплеты. Затем оказалось, что на Java можно создавать полноценные приложения. Их графические элементы стали оформлять в виде компонентов — появились JavaBeans, с которыми Java вошла в мир распределенных систем и промежуточного программного обеспечения, тесно связавшись с технологией CORBA. Остался один шаг до программирования серверных сценариев — этот шаг был сделан — появились сервлеты и EJB (Enterprise JavaBeans). Серверные сценарии должны взаимодействовать с базами данных — появились драйверы JDBC (Java DataBase Connection). Взаимодействие оказалось удачным, и многие системы управления базами данных и даже операционные системы включили, Java в свое ядро, например Oracle, Linux, Mac OS X, AIX.

Такое быстрое и широкое распространение технологии Java не в последнюю очередь связано с тем, что она использует новый, специально созданный язык программирования, который так и называется — язык Java. Этот язык создан на базе языков Smalltalk, Pascal, C++ и др., вобрав их лучшие, по мнению создателей, черты и отбросив худшие. Язык Java становится языком обучения объектно-ориентированному программированию, так же, как язык Pascal был языком обучения структурному программированию. Недаром на Java уже написано огромное количество программ и библиотек классов.

 

Далее перечислены свойства приложений, создаваемых на языке Java.

§ Простота в создании и сопровождении.

§ Объектность.

§ Устойчивость в работе и защищённость.

§ Межплатформенность.

§ Высокая технологичность.

§ Многопоточность и динамичность.

§ Сетевая распределённость.

 

Области применения:

§ графические приложения;

§ клиент-серверные приложения для обмена данными между компьютерами в сети;

§ веб-серверные приложения для обработки запросов веб-клиентов;

§ приложения для работы с базами данных;

§ апплеты, встраиваемые в веб-страницы;

§ приложения для устройств беспроводной связи (мобильные телефоны,

§ карманные компьютеры и им подобные).

Выполнение Java-программы

Программа, написанная на одном из языков высокого уровня, к которым относится и язык Java, так называемый исходный модуль ("исходники", от английского "source"), не может быть сразу же выполнена. Ее сначала надо откомпилировать, т. е. перевести в последовательность машинных команд — объектный модуль. Но и он, как правило, не может быть сразу выполнен: объектный модуль надо еще скомпоновать с библиотеками использованных в модуле функций и разрешить перекрестные ссылки между секциями объектного модуля, получив в результате загрузочный модуль — полностью готовую к выполнению программу.

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

 

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

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

Бинарный байт-код не зависит от платформы, что даёт возможность исполнять один и тот же бинарный код на компьютерах различных моделей и в разных операционных средах без перекомпиляции. Единственным требованием является наличие установленной на компьютере java-машины для данной операционной среды. Схема выполнения команд на JVM:

 

Таким образом, на первом этапе программа, написанная на языке Java, переводится компилятором в байт-коды. Эта компиляция не зависит от типа какого-либо конкретного процессора и архитектуры некоего конкретного компьютера. Она может быть выполнена один раз сразу же после написания программы. Байт-коды записываются в одном или нескольких файлах, могут храниться во внешней памяти или передаваться по сети. Это особенно удобно благодаря небольшому размеру файлов с байт-кодами. Затем полученные в результате компиляции байт-коды можно выполнять на любом компьютере, имеющем систему, реализующую JVM. При этом не важен ни тип процессора, ни архитектура компьютера. Так реализуется принцип Java "Write once, run anywhere" — "Написано однажды, выполняется везде".

Интерпретация байт-кодов и динамическое связывание значительно замедляют выполнение программ. Это не имеет значения в тех ситуациях, когда байт-коды передаются по сети, сеть все равно медленнее любой интерпретации, но в других ситуациях требуется мощный и быстрый компьютер. Поэтому постоянно идет усовершенствование интерпретаторов в сторону увеличения скорости интерпретации. Разработаны JIT-компиляторы (Just-In-Time), запоминающие уже интерпретированные участки кода в машинных командах процессора и просто выполняющие эти участки при повторном обращении, например, в циклах. Это значительно увеличивает скорость повторяющихся вычислений. Фирма SUN разработала целую технологию Hot-Spot и включает ее в свою виртуальную машину Java. Но, конечно, наибольшую скорость может дать только специализированный процессор. Фирма SUN Microsystems выпустила микропроцессоры PicoJava, работающие на системе команд JVM, и собирается выпускать целую линейку все более мощных Java-процессоров. Есть уже и Java-процессоры других фирм. Эти процессоры непосредственно выполняют байт-коды. Но при выполнении программ Java на других процессорах требуется еще интерпретация команд JVM в команды конкретного процессора, а значит, нужна программа-интерпретатор, причем для каждого типа процессоров, и для каждой архитектуры компьютера следует написать свой интерпретатор.

Эта задача уже решена практически для всех компьютерных платформ. На них реализованы виртуальные машины Java, а для наиболее распространенных платформ имеется несколько реализаций JVM разных фирм. Все больше операционных систем и систем управления базами данных включают реализацию JVM в свое ядро. Создана и специальная операционная система JavaOS, применяемая в электронных устройствах. В большинство браузеров встроена виртуальная машина Java для выполнения апплетов.

Кроме реализации JVM для выполнения байт-кодов на компьютере еще нужно иметь набор функций, вызываемых из байт-кодов и динамически связывающихся с байт-кодами. Этот набор оформляется в виде библиотеки классов Java, состоящей из одного или нескольких пакетов. Каждая функция может быть записана байт-кодами, но, поскольку она будет храниться на конкретном компьютере, ее можно записать прямо в системе команд этого компьютера, избегнув тем самым интерпретации байт-кодов. Такие функции называют "родными" методами (native methods). Применение "родных" методов ускоряет выполнение программы.

Виртуальная Java-машина не только исполняет байт-код (интерпретирует его, занимается JIT-компиляцией и исполняет JIT-компилированный код), но и выполняет ряд других функций. Например, взаимодействует с операционной системой, обеспечивая доступ к файлам или поддержку графики. А также обеспечивает автоматическое высвобождение памяти, занятой ненужными объектами – так называемую сборку мусора (garbage collection). Программы Java можно разделить на несколько основных категорий.

§ Приложение (application) – аналог "обычной" прикладной программы.

§ Апплет (applet) – специализированная программа с ограниченными возможностями, работающая в окне WWW-документа на стороне клиента под управлением браузера.

§ Сервлет (servlet) - специализированная программа с ограниченными возможностями, работающая в WWW на стороне сервера. Используется преимущественно в рамках технологии JSP (Java Server Pages - Серверных Страниц Java) для программирования WWW-документов со стороны сервера.

§ Серверное приложение (Enterprise application) – предназначено для многократного использования на стороне сервера.

§ Библиотека (Java Class Library – библиотека классов, либо NetBeans Module – модуль платформы NetBeans) – предназначена для многократного использования программами Java.

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

Сервлеты – это приложения Java, запускаемые со стороны сервера. Они имеют возможности доступа к файловой системе и другим ресурсам сервера через набор управляющих конструкций, предопределенных в рамках технологии JSP и пакета javax.servlet. Технология JSP заключается в наличии дополнительных конструкций в HTML-или XML-документах, которые позволяют осуществлять вызовы сценариев ("скриптов"), написанных на языке Java. В результате удается очень просто и удобно осуществлять обработку данных или элементов документа, и внедрять в нужные места документа результаты обработки. Сценарии Java перед первым выполнением автоматически компилируются на стороне сервера, поэтому выполняемый код выполняется достаточно быстро. Но, конечно, требует, чтобы была установлена соответствующая Java-машина. Например, входящая в состав Sun Application Server – программного обеспечения, обеспечивающего поддержку большого количества необходимых серверных возможностей для работы в WWW.

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

Виртуальную Java-машину часто называют исполняющей средой (Java Runtime Environment — JRE).

Существует два основных способа установки Java-машины на клиентский компьютер:

§ JRE из поставки Software Development Kit (SDK) - Комплекта разработки программного обеспечения.

§ Специализированный вариант JRE в составе Интернет-браузера, называющийся Java plugin.

Комплект последних версий SDK можно свободно загружать с сайта Oracle http://www.oracle.com/technetwork/java/javase/downloads/index.html.

Имеется три типа SDK:

§ Java ME – комплект Java Micro Edition, предназначенный для программирования "тонких аппаратных клиентов".

§ Java SE – комплект Java Standard Edition, предназначенный для программирования обычных компьютеров.

§ Java EE – комплект Java Enterprise Edition, предназначенный для написания серверного программного обеспечения.

Фирма SUN Microsystems (на данный момент куплена компанией Oracle) — создатель технологии Java, бесплатно распространяет набор необходимых программных инструментов для полного цикла работы с этим языком программирования: компиляции, интерпретации, отладки, включающий и богатую библиотеку классов, под названием JDK (Java Development Kit). Есть наборы инструментальных программ и других фирм. Например, большой популярностью пользуется JDK фирмы IBM.

 

Состав JDK(Java Development Kit) и JRE (Java Runtime Environment)

Набор программ и классов JDK (компилятор и библиотеки) включает:

§ компилятор javac из исходного текста в байт-коды; интерпретатор java, содержащий реализацию JVM;

§ облегченный интерпретатор jre (в последних версиях отсутствует);

§ программу просмотра апплетов appietviewer, заменяющую браузер;

§ отладчик jdt;

§ дизассемблер javap;

§ программу архивации и сжатия jar;

§ программу сбора документации javadoc;

§ программу javah генерации заголовочных файлов языка С;

§ программу javakey добавления электронной подписи;

§ программу native2ascii, преобразующую бинарные файлы в текстовые;

§ программы rmic и rmiregistry для работы с удаленными объектами;

§ программу seriaiver, определяющую номер версии класса;

§ библиотеки и заголовочные файлы "родных" методов;

§ библиотеку классов Java API (Application Programming Interface).

Компания Oracle постоянно развивает и обновляет JDK, каждый год появляются новые версии.

Таким образом, Java Virtual Machine (виртуальная Java машина) - это программа для интерпретации и выполнения байт-кода Java.

Исходный код на языке Java содержится в файлах с расширением java.

Программа для трансляции в байт-код называется javac.exe.

Программа для выполнения байт-кода называется java.exe.

Оттранслированная в байт-код программа имеет расширение class.

Для запуска программы нужно вызвать интерпретатор java.exe, указав в параметрах вызова класс выполнения.

Среда JRE (среда выполнения) содержит реализацию виртуальной Java машины для конкретной операционной системы. Хотя JRE входит в состав JDK, фирма Oracle распространяет этот набор и отдельным файлом. JRE содержит все необходимое для выполнения байт-кодов, в том числе интерпретатор java (в прежних версиях облегченнный интерпретатор jre) и библиотеку классов. Это часть JDK, не содержащая компиляторы, отладчики и другие средства разработки. Именно JRE или его аналог других фирм содержится в браузерах, умеющих выполнять программы на Java, операционных системах и системах управления базами данных.

После установки Java-машины (JRE) на клиентский компьютер из поставки Software Development Kit (SDK) вы получите каталог с названием, например, C:\Program Files\Java\jdk1.6.0_32, а в нем подкаталоги:

§ bin, содержащий исполнимые файлы;

§ demo, содержащий примеры программ;

§ docs, содержащий документацию, если вы ее установили;

§ include, содержащий заголовочные файлы "родных" методов;

§ jre, содержащий набор JRE;

§ old-include, для совместимости со старыми версиями;

§ lib, содержащий библиотеки классов и файлы свойств;

§ src, с исходными текстами программ JDK.

В новых версиях вместо каталога имеется упакованный файл src.jar.

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

 




Дата добавления: 2015-09-11; просмотров: 121 | Поможем написать вашу работу | Нарушение авторских прав

<== предыдущая лекция | следующая лекция ==>
Компонент EJB| HELLO FROM SAMOJLOVA!

lektsii.net - Лекции.Нет - 2014-2025 год. (0.073 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав