每一个java程序都会产生一个java虚拟机的实例。并不是说一个物理机上,运行多个java应用程序就只有一个java虚拟机实例,多少个java应用程序就有多少个java虚拟机实例。
java虚拟机可以是一种具体实现,也可以是一种规范(类似ARM)。
java虚拟机中存在的栈空间包括:java方法的栈,操作数的栈,本地方法的栈(C/C++写的函数)。
java虚拟机中的线程在创建时就会产生java方法栈,操作数栈,以及程序计数器PC。
java虚拟机中的执行引擎,就是字节码的解释器,要将字节码换成具体机器上的机器码执行,每个执行引擎的实例就是一个线程,多线程实际上就是多个执行引擎。
java虚拟机没有寄存器,采用的还是栈式体系,C语言执行体系也是栈帧式的。
java线程中执行java方法时,参数从左到右的方式入栈,C语言函数调用是采用从右至左的方式入栈。
阅读(1754) | 评论(0) | 转发(0) |