Java虚拟机是运行java程序的载体。每一个java程序,都会启动一个单独的Java虚拟机。虚拟机之间有自己独立的空间,相互之间不会干扰。那么,java程序的class文件是如何在虚拟机上运行的呢?我们先了解一下Java虚拟机的体系结构,以及其工作原理。
Java虚拟机的体系结构图
1.类装载器
负责查找并装载类型。Java虚拟机提供两种类装载器:Java虚拟机中的启动类装载器;java程序中的自定义类装载器。自定义类装载器必须继承java.lang.ClassLoader,是普通的java对象。每个被装载的类,不管是被启动类装载器装载,还是被自定义类装载器装载,Java虚拟机都会创建一个java.lang.Class类的实例来表示该类。自定义类装载器和Class类的实例都存储在堆区,而类的信息存储在方法区。
类装载器装载类的流程:
装载:查找并装载类的class文件
连接