Создание и изменение исходного кода Java




ЛЗ-1

Начало работы с Java

1. Справочная информация

2. Создание и изменение исходного кода Java

3. Компиляция и выполнение проекта

4. Дополнительные задания

5. Отчет о занятии

На этом практическом занятии вы познакомитесь с процессом создания простого консольного приложения "Hello, World!" на Java.

Отработка учебных вопросов занятия даст общее представление и первичные навыки о создании, и выполнении Java-приложений в среде JVM.

 

Для выполнения заданий этого занятия требуются программное обеспечение и ресурсы, перечисленные ниже:

Программное обеспечение Ресурс для загрузки
Комплект для разработчика на языке Java (JDK) https://www.oracle.com/technetwork/java/javase/downloads/jdk-7-netbeans-download-432126.html
Тестовый редактор TextPad Тестовый редактор Блокнот https://www.textpad.com/download/ Стандартное приложениеWindows

Перед началом работы создайте на личном флеш-диске каталоги типа:

E:\JavaFIO\pz1_FIO –- для записи результатов работы, полученных в TextPad или блокноте.

Примечание: FIO – аббревиатура от фамилии, имени, отчества студента. Например, для Павленко Сергея Леонидовича FIO = PSL.

Справочная информация

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

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

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

В настоящее время используется более сложная схема, называемая JIT-компиляцией (Just-In-Time) – компиляцией "по ходу дела", "налету". Когда какая-либо инструкция (или набор инструкций) Java-процессора выполняется в первый раз, происходит компиляция соответствующего ей байт-кода с сохранением скомпилированного кода в специальном буфере. При последующем вызове той же инструкции вместо ее интерпретации происходит вызов из буфера скомпилированного кода. Поэтому интерпретация происходит только при первом вызове инструкции.

Сложные оптимизирующие JIT-компиляторы действуют еще изощренней. Поскольку обычно компиляция инструкции идет гораздо дольше по сравнению с интерпретацией этой инструкции, время ее выполнения в первый раз при наличии JIT-компиляции может заметно отличаться в худшую сторону по сравнению с чистой интерпретацией. Поэтому бывает выгоднее сначала запустить процесс интерпретации, а параллельно ему в фоновом режиме компилировать инструкцию. Только после окончания процесса компиляции при последующих вызовах инструкции будет исполняться ее скомпилированный код. – До этого все ее вызовы будут интерпретироваться. Разработанная Sun виртуальная машина HotSpot осуществляет JIT-компиляцию только тех участков байт-кода, которые критичны к времени выполнения программы. При этом по ходу работы программы происходит оптимизация скомпилированного кода.

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

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

Приложения Java обладают не только хорошей переносимостью, но и высокой скоростью работы. Однако даже при наличии JIT-компиляции они все-таки могут выполняться медленнее, чем программы, написанные на C или C++. Это связано с тем, что JIT-компиляция создает не такой оптимальный код как многопроходный компилятор C/C++, который может тратить очень большое время и много ресурсов на отыскивание конструкций программы, которые можно оптимизировать. А JIT-компиляция происходит "на лету", в условиях жесткой ограниченности времени и ресурсов. Для решения этой проблемы были разработаны компиляторы программ Java в код конкретных программно-аппаратных платформ (native code – "родной" код). Например, свободно распростра-няемый фондом GNU компилятор gjc. Правда, заметные успехи Sun в усовершенствовании Java-машины позволили практически достичь, а в ряде случаев даже обогнать по быстродействию программы, написанные на других языках. В частности, приложения Java, активно занимающиеся выделением-высвобождением памяти, работают быстрее своих аналогов, написанных на C/C++, благодаря специальному механизму программных слотов памяти (slot – "паз, отверстие для вставки чего-либо").

 

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

 

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

 

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

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

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

Комплект последних версий SDK можно свободно загружать с сайта Sun https://java.sun.com/.

 

Аббревиатура JDK расшифровывается как Java Development Kit – комплект разработки программного обеспечения на Java. К сожалению, в комплекте отсутствует даже самая простейшая документация с описанием назначения имеющихся в нем инструментов – даны ссылки на сайт компании Sun, где можно найти эту информацию. Поэтому перечислим назначение основных инструментов. Они делятся на несколько категорий (см. табл. 1.1).

Таблица 1.1. Средства разработки приложений
Утилита Назначение
javac Компилятор в режиме командной строки для программ, написанных на языке Java
java Утилита для запуска в режиме командной строки откомпилированных программ-приложений
appletviewer Утилита для запуска на исполнение и отладку апплетов без браузера. При этом не гарантируется работоспособность отлаженного апплета в браузере.
jdb Отладчик программ, написанных на языке Java
javadoc Генератор документации по классам на основе комментариев, начинающихся с /**
jar Создание и управление Java-архивами jar
javah Генератор заголовочных файлов C/C++ для подключения к программам Java внешних библиотек C/C++ на основе интерфейса JNI
javap Дизассемблер классов
extcheck Утилита для обнаружения конфликтов между файлами архивов jar
native2ascii Утилита для конвертации в режиме командной строки параметра, передаваемого в виде текста на национальном алфавите, в последовательность символов UNICODE.

 

Схемы на рис. 1 и 2 иллюстрирует процесс выполнения Java–программ.

Рис. 1

 

Рис. 2

 

Создание и изменение исходного кода Java

Программу на языке Java можно ввести и записать в файл с расширением .java помощью простого текстового редактора (подойдет, например, Блокнот или, что лучше, TextPad).

Традиционно первая программа на новом языка программирования выводит сообщение Hello, World!

На языка программирования Java такая программа имеет вид:

/* This is My First Program on Java */

public class HelloFIO{

public static void main(String[] args){

System.out.println("Hello, World!");

}

}

После ввода данного текста в редактор его надо сохранить в файле HelloFIO.java в рекомендованый каталог на флешке E:\javaFIO\pz1_FIO

Примечание:



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-03-24 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: