锁定老帖子 主题:深入java虚拟机第5章, jvm
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-01-01
最后修改:2009-03-25
java虚拟机实例的生命周期: java虚拟机的职责是负责运行一个java程序。 当启动一个java虚拟机时,一个虚拟机实例便诞生了。 当该程序关闭退出时,这个虚拟机实例也随之退出。 如果一台主机上同时运行3个java程序,就会产生3个java虚拟机实例。 java虚拟机通过调用某个初始类的main方法来运行一个java程序。 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } } java虚拟机规范中,一个虚拟机的行为是分别按照子系统,内存区,数据类型以及指令这几部份组成的。 当java虚拟机运行一个程序时,它需要内存来存储许多东西,例如,字节码,从已装载的class文件中得到的其他信息,程序创建的对象,传递给方法的参数,返回值,局部变量,以及运行的中间结果。i每个java虚拟机都有一个方法区和一个堆,它们是由所有线程共享的。 当每个新线程被创建时,它都会得到自己的pc寄存器以及一个java栈。如果线程正在执行的是一个java方法,那么寄存器大的值总是指向下下一条将被执行的指令,而它的java栈总是存储该线程中的java方法调用的状态--包括它的局部变量,被调用时传递过来的参数,它的返回值,以及运算的中间结果。 java栈是由许多栈帧组成,一个栈帧包括一个java调用的状态。当线程调用一个java方法时,虚拟机压入一个新的栈帧到该线程的java栈中;当该方法返回时,这个栈帧被从java栈中弹出并抛弃。 java虚拟机没有寄存器,其指令使用java栈来存储中间数据。这样设计是为了使得java虚拟机的指令集尽量紧凑。
数据类型 java虚拟机的数据类型包括 基本类型:数值类型,boolean,returnAddress 引用类型:类类型,接口类型,数组类型
java虚拟机为每个载入的类型存储以下信息, 该类型的基本信息 该类型的常量池 字段类型 方法信息 除了常量之外的所有类(静态)变量 一个到类classloader的引用 一个到class类的引用
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 2823 次