01JVM

JVM

JVM的运行机制

Java程序的具体运行过程:

  1. Java源文件被编译器编译成字节码文件
  2. JVM将字节码文件编译成相应操作系统的机器码
  3. 机器码调用相应操作系统的本地方法库执行相应的方法

Java虚拟机包括一个类加载器子系统( Class Loader SubSystem) 、运行时数据区执行引擎本地接口库本地接口库调用本地方法库与操作系统交互。

image-20240806084211932

其中:

  • 类加载子系统用于将编译好的**.class文件加载到JVM**中;

  • 运行时数据区用于存储在JVM运行过程中产生的数据, 包括程序计数器、本地方法栈、虚拟机栈、方法区、虚拟机堆。

  • 执行引擎包括即时编译器和垃圾回收器, 即时编译器用于将Java字节码编译成具体的机器码, 垃圾回收器用于回收在运行过程中不再使用的对象。

  • 本地接口库用户调用操作系统的本地方法完成具体的指令操作。

多线程

在多核操作系统上, JVM允许在一个进程内同时并发执行多个线程。JVM中的线程与操作系统中的线程是相互对应的。在JVM线程的本地存储、程序计数器、虚拟机栈、缓冲区分配都已经完成准备工作,JVM会调用操作系统的接口创建一个与之对应的原生线程;在JVM线程JVM线程运行结束时,原生线程随之被回收。操作系统负责调度所有线程,并为之分配CPU时间片,在原生线程初始化完毕时,就会调用Java线程的run()执行该线程,在线程结束后,会释放原生线程和Java线程堆对应的资源

Java的内存区域

JVM的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值