在不同的虚拟机实现中,执行引擎在执行Java代码时可能会有解释执行(通过解析器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择,也可能两者兼备
运行时栈帧结构
栈帧存放了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。每个方法从调用开始到执行完成的过程,都对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。
局部变量表
是一组变量值存储空间,用于存放方法参数和方法内部定义的局部变量
long 和double的非原子性协定:把一次long和double数据类型读写分割为两次32为读写;
操作数栈
它是一个后进先出的栈,它的每一个元素可以是任意的Java数据类型