本篇及相关的几篇文章是《深入理解 Java 虚拟机:JVM 高级特性与最佳实践(第 2 版)》(周志明,机械工业出版社)这本书的读书笔记,文章中多使用思维导图列出一些章节中的知识点。感谢原书作者的精彩撰写,欢迎对 Java 虚拟机感兴趣的读者阅读原书。
本人从事 Android 开发多年,读这本书,作为对过去所学相关知识的系统梳理和总结。个人感觉这本书是一些表面代码的深入解释,以及解决一些问题或运用一些技术的行动指南。读完这本书,对一些东西的看法犹如从黑盒子中跃入光明世界。
如果本篇文章的读者发现有错误或不足的地方,欢迎评论区指出。
8.1 概述
执行引擎是 Java 虚拟机最核心的组成部分之一。“虚拟机” 是一个相对于 “物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面上的,而虚拟机的执行引擎是由自己实现的,因此可以自行制定指令集与执行引擎的结构体系,而且能够执行那些不被硬件直接支持的指令集格式。
8.2 运行时栈帧结构
运行时栈帧结构.png栈帧的概念结构
8.3 方法调用
方法调用.png8.4 基于栈的字节码解释执行引擎
说明虚拟机是如何执行方法中的字节码指令的。
基于栈的字节码解释执行引擎.png
编译过程
网友评论