【JVM】---一个java程序的执行过程

前言

一个java程序到底是如何执行的呢?下面跟着小编一起来看一张图
在这里插入图片描述
上图就是我们的一个java程序整个的一个执行过程,那其中的编译器,类加载器,内存,执行引擎就是我们JVM中几个非常关键的部位喽,接下来我们跟着小编一起来简单了解一下这几个部分!

编译器

那编译器到底是什么呢?其实编译器有很多种,那我们今天说的就是javac
百度百科解释如下:
javac 是java语言编程编译器。全称java compiler。javac工具读由java语言编写的类和接口的定义,并将它们编译成字节代码的class文件
其实javac的位置在这里,请看下面的图
在这里插入图片描述
javac位于jdk中,属于tools工具包里面的一部分

内存

java内存区域组成部分
在这里插入图片描述
从图中可以看出,内存中分为两大部分,内存公有的和内存私有的,公有的分为:方法区、堆;私有的分为:pc(程序计数器)、虚拟机栈、本地方法栈

类加载

虚拟器把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制
类加载机制大致分为两部分:类加载的时机、类加载的过程

执行引擎

虚拟机的执行引擎是由自己实现的,因此可以自行指定指令集与执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格式
执行引擎大概分为以下几个部分:运行时栈帧结构、方法调用、基于栈的字节码解释执行引擎

总结

上面分析的是小编通过对一个java程序的执行过程来简单介绍其中涉及到的关于JVM的几个核心组件,后续会和大家一起来共同学习组件的具体内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值