JVM是Java虚拟机(Java Virtual Machine)的缩写。JVM是计算设备的规范。这是一台虚构的计算机。它是通过对实际计算机上各种计算机功能的仿真和模拟来实现的。
在引入Java语言虚拟机JVM之后,在在不同平台上运行时,Java语言无需重新编写。当JVM执行字节字节时,实际上,字节代码实际上被解释为在特定平台上的机器指令执行。因此,与特定平台(WIN和MAC)有关的信息被阻止,因此只需要一个字节代码文件,您可以在各种平台上不修改而运行。
不仅如此,当前的JVM还实现了语言不合理。Scala,Kotlin,Groovy和其他语言可以在JVM中运行。
汇编后,Java虚拟机执行的代码使用平台中性(不取决于特定的硬件和操作系统),以用二进制格式表示,并且通常(但不是绝对)以文件的形式存储。因此,IT是一种类文件格式。事实上,JVM的平台和语言无关紧要的高理由也是因为.class文件格式的平台格式的平台和语言。
JVM实例对应于一个独立的Java程序,即过程级别。
启动Java程序时,您将首先建立JVM实例。任何具有公共静态void main(String [] args)函数的任何JVM实例的任何类都可以用作JVM实例运行的起点。
main()是程序的初始线程的起点,任何其他线程都是由线程启动的。
JVM内部有两个线程:监护权和非守卫者,Main()属于非守卫者,而JVM通常使用监护线。Java程序还可以指示由IT ISTO创建的线程。
主要分为三块:
注意:Java编译器将Java源文件(.java File)编译到字节代码文件(.CLASS文件)中,然后加载了JVM并解释了字节代码文件。JAVA的源代码不能直接在JVM上操作。在JDK中,Java编译器可以使用Javac命令来编译Java源文件。
我们随后的学习是JVM类加载机制,数据区域,GC机制,执行引擎机制和一些JVM优化的主要学习内容。
对于源文件的汇编,它不属于JVM的类别。汇编原则的内容更为复杂,但是我们可以发现Java源代码汇编的一般步骤是:
生成的字节码文件包含结构信息,元数据,方法信息等。类文件结构部分中的特定字节码结构。在编译器中 - 深度理解编译器可以读取书籍,例如“主要是实现JVM”和“编译原理”。
JVM加载并执行Java字节码。JVM类加载由ClassLoader及其子类完成。执行过程抽象如下:
参考资料:
如果您需要交流或文章错误,请直接留言。此外,我想喜欢,收集和关注,我将继续更新各种Java学习博客!