1 Создается исходный код (исходный документ)
(Программа на языке Java)
Сначала создается исходный текстовый документ с оговоренным протоколом (на языке Java), содержащий одно или несколько описаний классов.
Данный документ сохраняется с расширением *.java.
Часто для этого используются специальные среды для разработки - Integrated Development Environment (IDE), но можно писать в любом текстовом редакторе, например, Notepad (блокнот).
2 Исходный документ пропускается через компилятор
Затем документ пропускается через компилятор исходных кодов, который проверяет код на ошибки, работоспособность и корректность.
Компилятор - это утилита, которая является частью JDK.
3 Компилятор создает новый документ, закодированный с помощью байт-кода
(Программа состоящая из байт-кода)(компилятор транслирует файлы в специальный байт-код)
Байт-код - машинно-независимый низкоуровневый код, представляющий собой набор инструкций для JVM.
Платформа Java не предусматривает инструментов для редактирования байт-кода, но есть возможность его просмотреть с помощью утилиты дизасcемблера javap, которая входит в состав JDK.
4 Приложение, состоящее из таких файлов подается на вход виртуальной (т.е реализованная программно - сама является приложением) Java-машине (JVM), которая начинает их исполнять - считывает байт-код, интерпретирует/транслирует его в формат, который поймёт целевая платформа (операционная система) и выполняет его
(Программа, состоящая из машинных кодов)
Виртуальная машина (JVM) для выполнения программы запускается с помощью утилиты java.
Для выполнения программы в скомпилированном виде из файла с расширением *.class необходима установленная JRE.
Выполнение происходит в следующей последовательности:
(Резервирование памяти в Java определяется исключительно JVM, а не компилятором или разработчиком – разработчик может лишь указать, что он хочет создать еще один новый объект, по этой причине указатели по физическим адресам отсутствуют принципиально)
(Для освобождения неиспользуемой памяти в Java был введен механизм автоматической сборки мусора (garbage collector - сборщик мусора) - это фоновый поток исполнения, который регулярно просматривает существующие объекты, и удаляет уже не нужные. Из программы никак нельзя повлиять на работу сборщика мусора - можно только с помощью стандартной функции явно инициировать его очередной проход .Таким образом, программист должен следить лишь за тем, чтобы не оставалось ссылок на ненужные объекты, что существенно упрощает разработку программ)
*Также стоит отметить, что специальные компоновщики могут формировать из скомпилированных файлов байткода и файлов ресурсов более сложные файлы: к примеру, файлы приложений для мобильных телефонов с расширением .jar (jar-архивы) или установочные файлы приложений для операционной системы Android с расширением .apk.
Именно благодаря такой схеме работы программы, написанные на языке Java могут выполняться практически на любом устройстве.
Комментариев нет:
Отправить комментарий