前边几篇Blog分别介绍了JVM的类加载机制、运行时数据区域,那么字节码文件已然被加载到了JVM的内存中来,接下来就是执行它了。虚拟机字节码执行引擎的位置如下图所示,除了本地方法栈,其他运行时数据区域它都有相关执行内容。

执行引擎是java虚拟机核心的组成部分之一,虚拟机的执行引擎是由软件自行实现的。执行引擎(Execution Engine)的任务就是将字节码指令解释/编译为对应平台上的本地机器指令。执行原则如下:

  • 执行引擎在执行的过程中究竟需要执行什么样的字节码指令完全依赖于PC寄存器。每当执行完一项指令操作后,PC寄存器就会更新下一条需要被执行的指令地址。
  • 方法在执行的过程中,执行引擎有可能会通过存储在局部变量表中的对象引用准确定位到存储在Java堆中的对象实例信息,以及通过对象头中的元数据指针定位到目标对象的类型信息

所以可以看到,执行引擎主要作用于虚拟机栈,并且在堆中创建对象,从方法区中读取类信息,执行顺序依赖于PC寄存器。执行流程在第一篇Blog已经详细介绍过,可以参照

【深入理解JVM 六】虚拟机字节码执行系统相关推荐

  1. jvm(8)-虚拟机字节码执行引擎

    [0]README 0.1)本文转自 "深入理解jvm",旨在学习 虚拟机字节码执行引擎 的基础知识: [1]概述 1)物理机和虚拟机的执行引擎: 物理机的执行引擎是直接建立在处理 ...

  2. fegin需要实现类_深入理解JVM(六)--虚拟机类加载机制

    虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制. 类从被加载到虚拟机内存开始,到卸载出内存为止 ...

  3. 第六章JVM虚拟机字节码执行引擎——类文件和类加载之前必看

    文章目录 虚拟机字节码执行引擎 运行时栈帧结构 局部变量表(Local Variables) 操作数栈 动态链接(Dynamic Linking) 方法返回地址 附加信息 方法调用 解析 分派 虚方法 ...

  4. 深入理解Java虚拟机(周志明第三版)- 第八章:虚拟机字节码执行引擎

    系列文章目录 第一章: 走近Java 第二章: Java内存区域与内存溢出异常 第三章: Java垃圾收集器与内存分配策略 代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言 ...

  5. 深入理解java虚拟机-第五章:虚拟机字节码执行引擎

    本章将介绍虚拟机如何调用方法 一.java虚拟机字节码执行引擎 执行引擎在执行代码的时候可能有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种. 执行流程:输入的是字节码文件 ...

  6. 【初级01】java JVM核心技术(1):字节码、类加载器、GC机制

    1.编程语言概述 编程语言有不同的分类方法: 面向过程.面向对象.面向函数 静态类型.动态类型 编译执行.解释执行 有虚拟机.无虚拟机 有GC.无GC Java语言是一种面向对象.静态类型.编译执行, ...

  7. 尚硅谷 宋红康 JVM教程_02_字节码与类的加载篇

    本系列相关链接 尚硅谷 宋红康 JVM教程_01_内存与垃圾回收篇--01 (20210103-20210110) https://blog.csdn.net/wei198621/article/de ...

  8. JVM中篇:字节码与类的加载篇

    0.概述 0.1字节码文件的跨平台性 0.1.1.Java语言:跨平台的语言(write once,run anywhere) 当]ava源代码成功编译成字节码后,如果想在不同的平台上面运行,则无须再 ...

  9. Java虚拟机字节码指令概述

    虚拟机字节码指令 Java虚拟机的指令由一个字节长度的.代表着某种特定操作含义的数字(称为操作码,Opcode)以及跟随其后的零至多个代表此操作所需参数(称为操作数,Operands)而构成. 一 基 ...

最新文章

  1. 大数据实验室(大数据基础培训)——基础概念
  2. tensorflow keras numpy 数据 规范化、标准化、归一化
  3. Spring Boot 入门——Spring Boot 简介||微服务简介
  4. Coursera Algorithms week1 算法分析 练习测验: Egg drop 扔鸡蛋问题
  5. VTK:几何对象之TriangleStrip
  6. 记录yarn被攻击的解决办法
  7. [攻防世界 pwn]——反应釜开关控制
  8. 如何在mac上搭建sqli-labs
  9. [JavaScript]让footer总是停留在页面的底部(footer all the way at the bottom of the page)
  10. 历史上第一位从事游戏开发与设计的女程序员
  11. 前台提交数据到后台为乱码问题解决方式
  12. 第三章 SQL知识点总结
  13. VMware虚拟机下安装CentOS 6.10并配置访问外网
  14. Linux下编译CMake
  15. 软件工程专业职业规划发展路线
  16. kernel function
  17. windows怎样连接到linux桌面,Windows远程桌面连接Ubuntu 14.04
  18. 电磁场与电磁波实验 02 - | 电磁波波长测试实验
  19. 龙墟界域 鸿蒙界域,妖神记妖神记这个等级划分全面 看漫画
  20. 攻防世界 黑客精神unidbg破解

热门文章

  1. 在线音乐付费用户达5600万再创新纪录、付费率破9%,腾讯音乐娱乐集团Q4及全年财报多项业绩突破增长
  2. UltraEdit设置主题
  3. PhpStorm的主题和字体设置
  4. 中国移动手机桌面助理 v1.0.0 下载
  5. 通信工程有哪些SCI期刊推荐? - 易智编译EaseEditing
  6. Tessent专栏第二篇:Tessent Shell ETChecker介绍(1)
  7. (记录笔记4)——4.2 Spin组件的使用
  8. C语言版-数据结构-期末课程设计-大作业(航空客运订票系统)附源码+实验文档
  9. 【身边人回忆乔布斯】之“苹果史学家”迈克尔·莫里茨
  10. GlobalMapper20根据CAD图中的等高线生成GIS用的地形数据