JVM(Java Virtual Machine,Java虚拟机)主要由以下几个部分组成:
类加载器(Class Loader)
负责加载Java类文件到内存中,并生成对应的Class对象。它是Java实现动态性和灵活性的关键之一,能够根据不同的需求从本地文件系统、网络、数据库等来源加载类文件。类加载器只管加载,只要符合文件结构就加载,至于能否运行,则是由执行引擎负责的。
执行引擎(Execution Engine)
负责执行class文件中包含的字节码指令,相当于物理机器上的CPU。执行引擎是JVM的核心部分,它读取由类加载器加载的字节码,并转换成机器码(在某些情况下是解释执行,而在JIT编译技术下则是编译成机器码执行),最终交由操作系统执行。
运行时数据区(Runtime Data Area)
运行时数据区是JVM中用于存储和管理数据的重要部分,它主要包括以下几个区域:
程序计数器(Program Counter Register)
存储当前线程执行的字节码指令地址,是线程私有的。
Java堆(Java Heap)
存储Java对象实例和数组,是Java程序运行时的动态内存区域,所有线程共享。堆通常被划分为年轻代、老年代和永久代(在JDK8及以后版本中,永久代被元空间所取代)。
虚拟机栈(Java Virtual Machine Stacks)
每个Java方法在执行时都会创建一个栈帧(Stack Frame),用于存储
标签:存储,Java,JVM,线程,Jvm,执行,哪几,组成,加载 From: https://blog.csdn.net/xing_jian1/article/details/140819832