Найти в Дзене
itdrive.pro

Почему Java? Инфраструктура Java.

Многие спрашивают — почему Java так популярна? Ответом на этот вопрос являются три особенности Java:

  • кроссплатформенность
  • огромное количество библиотек для разработки
  • широкое коммьюнити

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

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

Но почему же так важна кроссплатформенность? «Написано однажды, работает везде». Данная особенность позволяет разрабатываемому программному обеспечению быть независимым от того устройства, на котором оно будет запущено. Именно кроссплатформенность позволила Java в свое время занять нишу игр для мобильных телефонов.

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

Как известно, процессор работает с так называемым бинарным кодом.Следовательно, для того, чтобы процессор понял, как именно следует исполнить ту или иную программу, ему необходимо получить программу в виде нулей и единиц. Чтобы программисты могли писать код на более понятном им языке, были разработаны языки программирования высокого уровня. Такие языки программирования позволяют программисту как можно реже задумываться о взаимодействии программ с устройством и дают возможность сосредоточиться на логике работы приложения.

Компиляция — преобразование исходного кода в машинный (бинарный) код.

Компилируемые языки программирования (например, C++) дают возможность писать программы, напрямую взаимодействующие как с операционной системой, так и с железом (hardware). Такие языки обеспечивают высокую скорость работы программ и поэтому часто применяются для реализации системных утилит и драйверов.

-2

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

После того, как программист написал исходный код в файле с расширением .java, он вызывает процесс компиляции с использованием инструмента javac. Результатом компиляции будет «исполняемый» файл с расширением .class. Данный файл содержит байт-код — код виртуальной машины Java. Последняя, в свою очередь, при запуске программы выполняет его интерпретацию в машинный код.

-3

Интерпретация — построчное (на лету) преобразование исходного кода в машинный код с одновременным выполнением.

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

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

-4

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

Марсель Сидиков - @it.drive