当前位置 : 主页 > 网络编程 > 其它编程 >

JVM体系结构及本地方法栈&方法区

来源:互联网 收集:自由互联 发布时间:2023-07-02
目录 常用jvm 体系结构 本地方法栈 方法区 程序计数器 常用jvm 目前市面上普遍使用的JVM大致有三种 Sun公司的HotSpot——绝大多数java开发者都用的是这款,绝对的主力 Oracle公司的JRockit—

目录

  • 常用jvm
  • 体系结构
  • 本地方法栈
  • 方法区
  • 程序计数器

常用jvm

目前市面上普遍使用的JVM大致有三种

  • Sun公司的HotSpot——绝大多数java开发者都用的是这款,绝对的主力
  • Oracle公司的JRockit——这款主要用于金融和军事
  • IBM公司的J9 VM——这款是IBM硬件绑定的,用户也很少
  • 下面以HotSpot展开描述

    体系结构

    Java文件最终在JVM中执行,JVM运行在操作系统之上,它与硬件并没有直接的交互

    (灰色区域为线程私有,不存在垃圾回收;深色区域为共享区域,存在垃圾回收)

    JVM体系结构及本地方法栈&方法区

    JVM体系结构及本地方法栈&方法区

    堆&栈&方法区----戳我

    本地方法栈

    本地方法是线程私有的

    本地方法(native method):凡是带了native关键字的,说明java的作用范围达不到,会通过native调用操作系统C语言的库

    本地方法区:里面运行带native关键字的本地方法,并由执行引擎(Excutrion Engine)执行。执行引擎最终会调用本地方法库(Native Libraies)执行

    目前很少用JNI进行通信,更多的使用Socket、WebService等等

    方法区

    方法区是线程共享的运行时内存区域,它存储了每一个类的结构信息。运行时常量池、字段、方法数据、构造函数和普通方法的字节码内容都存在于方法区中。

    实例变量存在堆内存中,和方法区无关

    程序计数器

    每个线程都有一个程序计数器,是线程私有的,就是一个指针指向方法区中的方法字节码(用来存储指向类似于一条指令的地址,也即将要执行的指令代码),用于执行引擎读取下一条指令。它是一块非常狭小的空间。

    上一篇:JAVA逻辑第十一章:类和对象
    下一篇:没有了
    网友评论