[Java] Обучение JVM (1)

JVM — это спецификация

Процесс выполнения Java-программы

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

Процесс выглядит следующим образом: Java File->Compiler>Bytecode->JVM->Machine Code.

Полное название JVM — виртуальная машина Java, знакомая всем виртуальная машина Java. Он может распознать файл с суффиксом .class, проанализировать его инструкции и, наконец, вызвать функцию в операционной системе для завершения нужной нам операции.

Связь между JVM, JRE и JDK

JVM — это всего лишь транслятор, который переводит Class в машиночитаемый код, но следует отметить, что JVM не генерирует код сам по себе и требует, чтобы каждый писал код, в то же время ему нужно много зависимых библиотек классов. В настоящее время требуется JRE.

Что такое JRE? Помимо включения JVM, он предоставляет множество библиотек классов (то есть то, что мы называем пакетами jar, которые могут предоставлять некоторые функции plug-and-play, такие как чтение или манипулирование файлами, подключение к сети, и использование ввода-вывода и т. д.) Это основные библиотеки классов, предоставляемые JRE. Стандарт JVM плюс большое количество реализованных базовых библиотек классов составляют среду выполнения Java, которую мы часто называем JRE (Java Runtime Environment).

Но для программистов JRE недостаточно. После того, как я закончу писать, мне нужно скомпилировать код, отладить код, упаковать код и иногда декомпилировать код. Так что мы будем использовать JDK, потому что JDK также предоставляет несколько очень полезных гаджетов, таких как javac (код компиляции), java, jar (код пакета), javap (декомпиляция <разборка>) и т. д. Это ЖДК.

вставьте сюда описание изображения

От кросс-платформенного к кросс-языковому

Кроссплатформенность: написанный нами класс выполняется в разных операционных системах (Linux, Windows, MacOS и других платформах), и эффект одинаков — это кроссплатформенная природа JVM.

Для обеспечения кросс-платформенности различные операционные системы имеют соответствующие версии JDK.

вставьте сюда описание изображения

Кросс-язык (не зависит от языка)

JVM распознает только байт-коды, поэтому JVM фактически отвязана от языка, то есть не имеет прямого отношения.JVM не переводит файлы Java, а распознает файлы классов.Это обычно называется байт-кодом. Есть также такие языки, как Groovy, Kotlin, Scala и т. д. Они на самом деле скомпилированы в байткоды, поэтому они также могут работать на JVM — это межъязыковая особенность JVM. Java的跨语言性一定程度上奠定了非常强大的java语言生态圈.

вставьте сюда описание изображения

Supongo que te gusta

Origin blog.csdn.net/qq_43358469/article/details/131390423
Recomendado
Clasificación