虚拟机字节码执行引擎

2019-03-18  本文已影响0人  简书徐小耳

我们的java文件被编译成class文件,该class文件中就是包含字节指令

概述

虚拟机字节码执行引擎的工作模式

运行时栈帧结构(基于线程的,在栈顶部的栈帧就是当前方法)

栈帧存储的数据

局部变量表大小和操作数栈的深度在编译程序代码的时候就确定

局部变量表

操作数栈(基于方法的)

动态链接

方法返回地址

方法调用

解析

静态分派

动态分派

单分派和多分派

虚拟机动态分派的实现

基于栈的字节码解释执行引擎

我们的程序代码物理是编译成虚拟机能执行的指令集还是物理机的目标代码大致逻辑如下

javac编译器完成了(独立于虚拟机之外):程序源码->词法分析->单词流->语法分析->抽象语法树->指令流

编译器输出的指令流基本上都是基于栈的指令集架构,当然还有依赖于寄存器的指令集。

上一篇 下一篇

猜你喜欢

热点阅读