Java — популярный язык программирования, который существует уже некоторое время. В отличие от нескольких других языков, его можно использовать с любой компьютерной структурой. Из-за независимости Java от платформы нет необходимости переписывать программу для работы на нескольких компьютерах. Благодаря использованию байт-кода Java и виртуальной машины Java поддерживается переносимость между платформами. Исходный код запускается через компилятор Java javac, который создает байт-код. Байт-код может выполняться на любой машине, поддерживающей виртуальную машину Java (JVM). Байт-код преобразуется JVM в машинный код, а затем запускается программа.
Курс разработки на Java расширит ваши знания и навыки.
НЕЗАВИСИМЫЕ ОТ ПЛАТФОРМЫ ЯЗЫКИ И ИХ ОПРЕДЕЛЕНИЯ ЧТО ТАКОЕ ПЛАТФОРМА?
Платформа — это определенный набор компонентов — аппаратного обеспечения, программного обеспечения и операционной системы, которые вместе составляют вычислительную среду.
Название Java происходит от того факта, что, в отличие от других языков программирования, Java-приложения не нужно переписывать для каждой платформы для выполнения (WORA).
КАК JAVA ОБЕСПЕЧИВАЕТ НЕЗАВИСИМОСТЬ ОТ ПЛАТФОРМ?
Давайте рассмотрим различия между процессом компиляции Java и другими языками, особенно C++, чтобы увидеть, как Java упрощает работу на разных платформах.
Исходный код, оригинальная работа программиста, непонятен машине. Нетрудно провести параллели между словами и фразами, составляющими исходный код, и языком, которым мы пользуемся каждый день. Информация должна быть переведена в код машинного языка, прежде чем ее сможет использовать компьютер.
Инструкции, написанные на компьютерном языке, известном как машинный код, предназначены для выполнения этой машиной. Это задача, выполняемая компилятором. Термин «компиляция» относится к процессу, посредством которого исходный код преобразуется в исполняемый машинный код. В машинном языке код всегда зависит от платформы, на которой он работает.
ОБЫЧНЫЕ МЕТОДЫ КОМПИЛЯЦИИ
Когда программа C/C++ разрабатывается и строится в ОС Windows, код сначала переводится на машиночитаемый язык. Собственный исполняемый код (в виде файла .exe) будет создан в процессе компиляции. Единственной поддерживаемой ОС для этого собственного кода является Windows.
Из-за того, что машинный код для Windows, Mac OS X и Unix отличается, этот файл не может быть выполнен в этих системах. В результате C++ и C не являются кроссплатформенными языками.
Курс разработки бэкенда на Java поможет вам лучше понять концепции.
ПОШАГОВОЕ ВЫПОЛНЕНИЕ ПРОГРАММЫ JAVA
Компилятор Java не генерирует собственные исполняемые файлы или код для конкретной платформы. Вместо этого в процессе компиляции Java генерируется уникальный функциональный формат, известный как байт-код. Этот выходной файл можно также назвать файлом «.class».
Байт-код Java — это набор инструкций для особого типа компьютерного оборудования, известного как виртуальная машина Java (JVM). Байт-код Java во многом напоминает машинный код, но он полностью независим от платформы. Другими словами, байт-код нельзя запускать напрямую в какой-либо компьютерной системе. Интерпретатор по-прежнему требуется для запуска программ Java, написанных в байтовом коде.
Виртуальная машина Java (JVM) — это расширенная версия интерпретатора Java. Формат ввода для виртуальной машины Java — байт-код. Он выполняет тяжелую работу по расшифровке и выполнению байт-кода и выдает результаты.
Интерпретатор отвечает за перевод байт-кода в инструкции целевого языка. Проще говоря, нативный код в точности похож на код машинного языка в том смысле, что его можно построить для работы с определенным процессором и его набором инструкций. Это означает, что каждая операционная система может выполнять свой собственный код. Байт-код Java работает на любой платформе, но собственный исполняемый код, созданный из байтового кода с помощью интерпретатора, очень зависит от платформы и не может быть развернут за пределами своей собственной объектной платформы.
ПОЧЕМУ JAVA НЕ ПОЛНОСТЬЮ НЕЗАВИСИМ ОТ ПЛАТФОРМЫ?
Java не на 100% независима от платформы. Сначала исходный код высокого уровня программиста компилируется компилятором javac в байтовый код. Однако для этого байт-кода необходим интерпретатор/компилятор Just-In-Time (JIT), даже если он не зависит от платформы. Чтобы выполнить программу, JVM с JIT сначала считывает свой байт-код, затем использует JIT для его интерпретации и компиляции в машинный код и, наконец, запускает программу.
Виртуальная машина Java — интерпретатор для конкретной платформы. Существует множество виртуальных машин Java (JVM) для использования на разных платформах. Например, виртуальная машина Java (JVM) в macOS отличается от машины в Windows. Файл .class и байтовый код могут быть прочитаны этой JVM.
Это приводит нас к выводу, что Java Byte Code не зависит от платформы. Однако для работы Byte Code на любой платформе требуется виртуальная машина Java для конкретной платформы.
ЗАКЛЮЧЕНИЕ
Поскольку Java не зависит от платформы, мы можем использовать его для развертывания одного и того же кода во многих средах.
Это стало возможным благодаря виртуальной машине Java (JVM) и байт-коду. Кодирование транслируется в байтовый код компилятором Java. Данные в байтовой форме могут быть прочитаны и выполнены процессором любого компьютера, независимо от архитектуры системы.
Затем JVM целевой операционной системы интерпретирует этот байт-код Java для создания кода, который может выполняться непосредственно хост-системой. Этот собственный код понимается компьютером, и затем запускается запрошенное программное обеспечение.
Стоимость курса Java-разработчика может достигать 1 лакха индийских рупий.