JVM体系结构

一.JVM能够跨平台(计算机体系结构)执行的原因:

jvm屏蔽了与各个计算机平台相关软件的或者硬件之间的差异。与平台相关的耦合统一由JVM提供者来实现。

二.JVM体系结构。
JVM(java virtual Machine),java虚拟机,它通过模拟计算机来实现计算所能进行的计算。JVM主要由四部分组成:类加载器;执行引擎;内存区;本地方法调用。
graph LR
A(java源文件)-->B(java编译器)
B-->C(class文件)
C-->D(class类加载器)

1.类加载器

每个被JVM加载的类型都有一个对应的java.lang.Class类的实例来表示该类型,该实例可以唯一表示被JVM加载的class类,要求这个实例和其他类的实例一样都存放在java的堆中。

2.执行引擎

作用:解析JVM字节码指令,得到执行的结果。在《java虚拟机规范》中详细定义了执行引擎怎么处理遇到的每一个字节码指令,和得到什么结果。
执行引擎就是执行一条条代码的一个流程。代码包含在方法体内。从而可以理解执行引擎是执行每一个方法的流程。而这个流程对应到操作系统也就是执行一个线程的流程。也就是说一个线程也就是执行引擎的一个实例。JVM中也就会会有多个执行引擎在工作。有的是为用户程序工作,有的JVM自身在运行。(如垃圾回收机制)

3.java内存管理

执行引擎在执行一段程序时需要存储一些东西。如操作码需要的操作数.操作码的操作结果需要保存。class类字节码,还有类的对象等信息需要在执行引擎执行之前准备好。
一个JVM实例包括一个方法区,一个java堆,一个java栈,PC寄存器和本地方法区;其中方法区和java堆是被所有的线程共享的,也就是每个执行引擎都可以访问的。每一个执行引擎创建都和创建栈和PC寄存器。如果正当执行一段java代码,栈内存会保存该线程方法调用的状态。如参数,局部变量,返回值,以及方法的中间结果。PC寄存器会执行下一条执行指令。

4.本地方法

对于一个运行中的Java程序而言,它还可能会用到一些跟本地方法相关的数据区。当某个线程调用一个本地方法时,它就进入了一个全新的并且不再受虚拟机限制的世界。本地方法可以通过本地方法接口来访问虚拟机的运行时数据区。 地方法本质上时依赖于实现的,虚拟机实现的设计者们可以自由地决定使用怎样的机制来让Java程序调用本地方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值