A virtual machine is a virtual computer that is used to perform a series of virtual computer commands. Virtual machines can generally be divided into the following:
(1) System virtual machine: Visual Box, VMware, etc.
(2) Program virtual machine: Java Virtual machine, etc.
The instructions executed in the Java virtual machine are Java byte code directives. The hotspot virtual machine is now being deployed on a large scale. In the entire Java application, you have to follow
(1) Java language Specification: Java syntax, lexical, supporting data types, variable types, etc., to tell developers "how Java code should be written"
(2) Java Virtual Machine specification: the Java bytecode in which it runs is not necessarily written in the Java language, and Java bytecode generated in languages such as groovy and Scala can be executed by Java virtual machines.
The main contents of the Java Virtual Machine specification are as follows:
(1) Defines the internal structure of the virtual machine
(2) Defines the byte code type and function that the virtual machine performs
(3) Defines the structure of the class file
(4) Defines the loading, connection, and initialization of a class
The Java system is as follows:
(1) Java programming language
(2) Java virtual machines on various hardware platforms
(3) class file format
(4) Java API Class Library
(5) Third-party Java class libraries from business organizations and open source communities
HotSpot VM directory Structure: