zoukankan      html  css  js  c++  java
  • jvm简介和体系结构

    1,简介

    JVM是Java Virtual Machine(Java虚拟机)的缩写,是一个虚构出来的计算机。

    Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。

    “一次编译,到处运行”

    JVM在JRE中;JDK(Java Development Kit)为开发工具包,有编译和调试java程序的工具。

     

    2、体系结构

     

    由上面5个部分组成。方法区里还包括一个运行时常量池。

    (1)线程共享的区域:

     Java堆:负责存储所有对象实例和数组的

    方法区域:存储了类的信息和常量

    (2)线程私有的区域:

    java栈(虚拟机栈):栈里面存储着的是StackFrame,被译作java虚拟机框架,也叫做栈帧。

    StackFrame包含三类信息:局部变量,执行环境,操作数栈。局部变量用来存储一个类的方法中所用到的局部变量。执行环境用于保存解析器对于java字节码进行解释过程中需要的信息,包括:上次调用的方法、局部变量指针和 操作数栈的栈顶和栈底指针。操作数栈用于存储运算所需要的操作数和结果。StackFrame在方法被调用时创建,在某个线程中,某个时间点上,只有一个 框架是活跃的,该框架被称为Current Frame,而框架中的方法被称为Current Method,其中定义的类为Current Class。

    程序计数寄存器:当前线程所执行的字节码的行号指示器;

    如果线程正在执行的是一个Java 方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是Natvie 方法,这个计数器值则为空(Undefined)。

    本地方法堆栈:类似java栈,JVM采用本地方法堆栈来支持native方法的执行,此区域用于存储每个native方法调用的状态。

    5个部分图示:

    图示2:

     

  • 相关阅读:
    React简明学习
    react-router简明学习
    react组件生命周期
    在vue中使用css modules替代scroped
    深入理解javascript中的事件循环event-loop
    javascript中的内存管理和垃圾回收
    移动端中的陀螺仪
    基于create-react-app的再配置
    vscode常用设置
    更高效地使用搜索引擎
  • 原文地址:https://www.cnblogs.com/lnu161403214/p/10417410.html
Copyright © 2011-2022 走看看