Java虚拟机运行一

某些运行时数据时数据区是共享的,还有一些则是只由一个线程所拥有,每个java虚拟机实例都有一个方法区和堆,他们是由所有新线程所共享的。当虚拟机装载一个class文件时,它会从这个class文件包含的二进制数据中解析所得到的类信息,并将其放在方法区里面。当程序运行时,虚拟机会把所有在该程序中创建的实例对象放入堆中。

当一个线程被创建时,它都将得到它自己的pc寄存器(程序寄存器)以及一个java栈,如果线程正在执行一个非本地的Java方法,那么PC寄存器总是指向下一条指令,java栈中保存着,线程的状态,局部变量,被调用时传递进来的参数,它的返回值,它的运算的中间结果等。如果是本地方法,则是以某种具体实现的方式存储在本地的方法栈中,也可能是在寄存器或者其他某些与特定实现的内存中。

Java栈是由许多栈帧或者说帧组成的,一个栈帧包含一个java方法调用状态,当线程调用某个java方法时,虚拟机压入一个新的帧到该线程的java栈中,当该方法返回时,则这个栈帧被从java栈中弹出并抛弃。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值