JVM初探2——JVM启动及基本机构

一、JVM启动流程

下面是我们最熟悉的HelloWorld 代码:

public class HelloWorld {

    public static void main (String [] args)

    {

        System.out.println("HelloWorld!");

    }

}


其在运行过程如下

通过javac编译HelloWorld.java生成HelloWorld.class,然后运行java Helloworld

执行程序。


                                      图一 JVM运行程序启动过程

 

二、JVM基本机构

JVM的主要结构如下所示:

     

                                     图二 JVM基本结构

 

1PC寄存器

每个线程拥有一个PC寄存器

在线程创建时 创建

指向下一条指令的地址

执行本地方法时,PC的值为undefined

2、方法区

保存装载的类信息

类型的常量池

字段,方法信息

方法字节码

通常和永久区(Perm)关联在一起

注:JDK6时,String等常量信息置于方法,JDK7时,已经移动到了堆

3Java

和程序开发密切相关

应用系统对象都保存在Java堆中

所有线程共享Java

对分代GC来说,堆也是分代的

GC的主要工作区间

 

4Java

线程私有

栈由一系列帧组成(因此Java栈也叫做帧栈)

帧保存一个方法的局部变量、操作数栈、常量池指针

每一次方法调用创建一个帧,并压栈

 

三、总结

掌握程序在JVM中启动流程及jVM基本机构是学习JVM的基础。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值