×
新网 > 虚机资讯 > 正文

浅析JAVA程序运行模式及虚拟机JVM(四)

  • 作者:
  • 来源:
  • 2018-05-24 11:05:24

栈区域——每一个线程创建一个单独的运行时堆栈。 对于每一个方法调用一个称为栈内存栈帧被创建所有局部变量将被创建在栈内存中。栈区域是线程安全的因为它不是一个共享资源栈帧分三个实体:

 栈区域——每一个线程创建一个单独的运行时堆栈。 对于每一个方法调用一个称为栈内存栈帧被创建所有局部变量将被创建在栈内存中。栈区域是线程安全的因为它不是一个共享资源栈帧分三个实体:

1635.jpg_wh300.jpg

其一、局部变量数组——有多少相关的方法局部变量以及相应的值将被存储在这里。
其二、操作数栈——如果任何中间操作要求执行,操作数栈作为运行时工作区执行操作。
其三、帧数据——所有的符号对应的方法存储在这里。在任何的情况下异常catch块信息将保存在帧数据。
程序计数器——每个线程必须分开程序计数器登记当前执行的指令一旦执行程序计数器(程序计数登记器)更新下一个指令。
本地方法栈——本地方法栈保存本机方法的信息。为每一个线程将创建一个单独的本地方法栈以备不时之用。
执行引擎
通过类装载器装载的被分配到JVM的运行时数据区的字节码会被执行引擎执行。以指令为单位执行引擎读取Java字节码它就像一个CPU一样一条一条地执行机器指令。每一个字节码指令都由一个1字节的操作码和附加的操作数组成执行引擎取得一个操作码,继续根据操作数来执行任务完成后就继续执行下一条操作码。
Java字节码是用一种人类可以读懂的语言编写的而不是用机器可以直接执行的语言。因此执行引擎必须把字节码转换成可以直接被JVM执行的语言字节码可以通过以下两种方式转换成合适的语言。

  • 相关专题

免责声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,请发送邮件至:operations@xinnet.com进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

免费咨询获取折扣

Loading