java虚拟机概述

来源:互联网 发布:绝地大逃杀有mac版吗 编辑:程序博客网 时间:2024/06/02 02:13
本文主要阐述JAVA虚拟机的体系结构,以及JAVA程序运行的机制和原理

1.什么是JAVA虚拟机
可以理解为:
1)JAVA虚拟机的规范
2)一种虚拟机的实现方式
3)一个运行中的虚拟机实例

2.什么是JAVA程序?
我认为应该是基与堆和栈的语言,比如(草泥马语),堆主要用来存放运行时的对象和数据,而栈则进行指令计算。而虚拟机恰恰进行堆和栈的管理以执行JVM虚拟机指令。

3.虚拟机的生命周期
1)守护进程,当虚拟机执行main入口的时候,守护进程就会启动,比如进行垃圾收集等工作。
2)非守护进程,比如main就是非守护进程,只要非守护进程存在,虚拟机就不会退出。否则则退出。

4.JAVA虚拟机的体系结构
1)class loader
2)运行时数据区,比如刚才的堆和栈,还有本地方法栈,方法区(可以理解为是特殊的堆栈),PC寄存器(也就是程序计数器)等
3)执行引擎,用来执行JVM指令。

5.JAVA的栈
JAVA的栈帧分为三个部分:
1)局部变量区 以一个字长为单位,从0开始的数组
比如:
main(){
int i=0;
}
这里的局部变量就是索引号为0的i
2)操作数栈
跟局部变量一样,也是一个数组,但是他们不是通过索引来访问,而是通过出栈和入栈来操作。
比如刚才的i=0的命令,JVM命令如下:
iconst_0 把0压入栈
istore_0 把0存入到索引为0的局部变量数组中,并且弹出栈顶元素

3)帧数据区
这里包括常量池,正常方法返回,异常派发机制等等。这里懒得打字说明,大家可以直接查看class文件的字节码。推荐一个好工具。ClassLib”,可以在http://www.ej-technologies.com/download/jclasslib/files.html
得到下载
0 0
原创粉丝点击