首页 > 编程语言 >Java虚拟机内部体系结构

Java虚拟机内部体系结构

时间:2023-01-31 22:14:44浏览次数:44  
标签:Java 虚拟机 JVM 堆栈 执行 方法 体系结构

JVM(Java虚拟机)是一个抽象机器。 它是一个提供可以执行Java字节码的运行时环境的规范。JVM可用于许多硬件和软件平台(即JVM是平台相关的)。

什么是JVM?

JVM(Java虚拟机)是:

  1. 指定Java虚拟机的工作的规范。 但实现提供程序是独立的选择算法。 其实现是由Sun和其他公司提供。

  2. 它的实现被称为JRE(Java运行时环境)。

  3. 运行时实例只要在命令提示符上编写java命令来运行java类,就会创建JVM的实例。

JVM(Java虚拟机)能做什么?

JVM执行以下操作:

  • 加载代码
  • 验证代码
  • 执行代码
  • 提供运行时环境

JVM提供了以下定义:

  • 内存区
  • 类文件格式
  • 寄存器集合
  • 垃圾收集堆
  • 致命错误报告等

JVM(Java虚拟机)内部体系结构

下面让我们来了解JVM的内部架构。它包含类加载器,内存区域,执行引擎等。

 

1)类加载器

Classloader是JVM的一个子系统,用于加载类文件。

2)类(方法)区域

类(方法)区域存储每个类结构,例如运行时常量池,字段和方法数据,方法的代码。

3)堆

它是分配对象的运行时数据区。

4)堆栈
Java堆栈存储帧。它保存局部变量和部分结果,并在方法调用和返回中起作用。
每个线程都有一个私有JVM堆栈,同时创建线程。每次调用方法时都会创建一个新的框架。 框架在其方法调用完成时被销毁。 //更多请阅读:

5)程序计数器寄存器

PC(程序计数器)寄存器。 它包含当前正在执行的Java虚拟机指令的地址。

6)本地方法堆栈

它包含应用程序中使用的所有本地方法。

7)执行引擎

执行引擎包含:

  1. 虚拟处理器
  2. 解释器:读取字节码流,然后执行指令。
  3. 即时(JIT)编译器:它用于提高性能,JIT编译的同时有类似字节代码部分的功能,从而减少编译所需的时间。编译器是指从Java虚拟机(JVM)的指令集到特定CPU的指令集的转换器。
 



 





标签:Java,虚拟机,JVM,堆栈,执行,方法,体系结构
From: https://www.cnblogs.com/cnetsa/p/17080948.html

相关文章

  • Java变量和数据类型
    变量是一个内存位置的名称。java中有三种类型的变量:局部变量,实例变量和静态变量。java中有两种类型的数据类型:原始数据类型和非原始数据类型。变量变量是在内存中分......
  • Java Unicode编码系统
    Unicode是一种通用的国际标准字符编码,能够表示世界上大多数的书面语言。为什么java使用Unicode系统?在Unicode之前,有很多语言标准:ASCII(美国信息交换标准代码)。ISO......
  • Java if/else语句
    Javaif语句用于测试条件。它检查布尔条件为:true或false。java中有各种类型的if语句,它们分别如下:if语句if-else语句嵌套if语句if-else-if语句Javaif语句Java语......
  • Java运算符
    java中的运算符是用于执行运算(加,减,乘,除等)操作的符号。例如:+,-,*,/等。Java中有许多类型的运算符,如下所示:一元运算符算术运算符移位运算符关系运算符按位运算符逻......
  • Java switch语句
    Javaswitch语句用于从多个条件执行一个语句。它就像if-else-if语句一样。语法:switch(expression){casevalue1://codetobeexecuted;......
  • Java概述
    Java编程语言最初由SunMicrosystems开发,由JamesGosling发起并于1995年发布,作为SunMicrosystemsJava平台(Java1.0[J2SE])的核心组件。Java标准版的最新版本是JavaS......
  • Java快速入门
    初学者快速学习Java1-介绍2- 创建Java工程3- 原始数据类型4- 变量5-控制流程5.1- if-else语句5.2- 一般操作符5.3-布尔值5.4- switch-case-defau......
  • JavaScript之void
    void是什么void是JavaScript重要的关键字,该操作符指定要计算一个表达式但不返回。语法格式:voidfunc()javascript:voidfunc()或void(func())javascript:void(func......
  • Java(FastJson) 解析 JSON文件
    依赖<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.73</version></dependency>JSON文件内容publicclassMy......
  • .net 对接极兔平台 java Base64与.net Base64数据不一致及POST 带header 和body 参数
    近几天对接极兔平台,遇到javaBase64与.netBase64数据不一致及POST带header和body参数的问题,费了一些周折,现在记录下来,供大家参考。1. javaBase64与.netBase64数据......