重读《深入理解Java虚拟机》虚拟机如何执行字节码?虚拟机执行引擎的工作机制

Posted 求知若饥虚心若愚,脚着沃野长望星空,天高海阔水静深流.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重读《深入理解Java虚拟机》虚拟机如何执行字节码?虚拟机执行引擎的工作机制相关的知识,希望对你有一定的参考价值。

      Class文件二进制字符流通过类加载器和虚拟机加载到内存(方法区)完成在内存上的布局和初始化后,虚拟机字节码执行引擎就可以执行相关代码实现程序所定义的功能。虚拟机执行引擎执行的对象是方法(均特指非本地方法),方法是

着一个程序所定义的一个功能的载体,实现预定的业务功能或者特定的功能等。

      Java虚拟机内存内针对方法的执行专门划分了一个区域即虚拟机栈。虚拟机栈内通过栈帧结构来存储调用方法和执行方法需要的局部变量,操作数栈、方法返回值等,通过栈帧的出入栈来表示方法的执行顺序。

1、栈帧结构:虚拟机内如何存储方法的内容,方法在虚拟机内的表示

 

栈帧组成

用途、作用、功能

特点

其他

局部变量表      
操作栈      
动态连接      
返回地址      
附加信息      

 

 

2、方法的调用:解析方法的符号引用和确定方法的版本

(1)虚方法和非虚方法

 

(2)解析

 

 

(3)分派

 

 

 

 

3、虚拟机如何执行方法?虚拟机执行引擎的工作机制

以上是关于重读《深入理解Java虚拟机》虚拟机如何执行字节码?虚拟机执行引擎的工作机制的主要内容,如果未能解决你的问题,请参考以下文章

重读《深入理解Java虚拟机》

深入理解Java虚拟机06--虚拟机字节码执行引擎

深入理解JVM虚拟机5:虚拟机字节码执行引擎

深入理解java虚拟机:字节码执行引擎介绍-栈帧

深入理解Java虚拟机

JVM | 第2部分:虚拟机执行子系统《深入理解 Java 虚拟机》