📅  最后修改于: 2020-09-25 02:17:35             🧑  作者: Mango
JVM(Java虚拟机)是抽象机。它是提供可在其中执行Java字节码的运行时环境的规范。
JVM可用于许多硬件和软件平台(即JVM取决于平台)。
它是:
JVM执行以下操作:
JVM提供了以下定义:
让我们了解JVM的内部体系结构。它包含类加载器,内存区域,执行引擎等。
Classloader是JVM的子系统,用于加载类文件。每当我们运行Java程序时,它都会由类加载器首先加载。Java中有三个内置的类加载器。
"//Let's see an example to print the classloader name
public class ClassLoaderExample
{
public static void main(String[] args)
{
// Let's print the classloader name of current class.
//Application/System classloader will load this class
Class c=ClassLoaderExample.class;
System.out.println(c.getClassLoader());
//If we print the classloader name of String, it will print null because it is an
//in-built class which is found in rt.jar, so it is loaded by Bootstrap classloader
System.out.println(String.class.getClassLoader());
}
}
输出:
这些是Java提供的内部类加载器。如果要创建自己的类加载器,则需要扩展ClassLoader类。
类(方法)区域存储每个类的结构,例如运行时常量池,字段和方法数据,方法代码。
这是在其中分配对象的运行时数据区域。
JavaStack存储框架。它保存局部变量和部分结果,并在方法调用和返回中起作用。
每个线程都有一个专用的JVM堆栈,与该线程同时创建。
每次调用方法时都会创建一个新框架。当框架的方法调用完成时,该框架将被销毁。
PC(程序计数器)寄存器包含当前正在执行的Java虚拟机指令的地址。
它包含应用程序中使用的所有本机方法。
它包含了:
Java本机接口(JNI)是一个框架,提供与使用C,C++,Assembly等其他语言编写的另一个应用程序进行通信的接口。Java使用JNI框架将输出发送到控制台或与OS库进行交互。