java jvm虚拟机

什么是JVM

Java虚拟机(JVM)是使计算机能够运行Java程序的抽象计算机。

JVM有三个概念:

1.规格

2.实施

3.实例。

该规范是正式描述JVM实现要求的文档。 具有单一规范可确保所有实现都可互操作。 JVM实现是满足JVM规范要求的计算机程序。 JVM的实例是在进程中运行的实现,该进程执行编译为Java字节码的计算机程序。

Java运行时环境(JRE)

Java Runtime Environment(JRE)是一个软件包,其中包含运行Java程序所需的软件。 它包括Java虚拟机实现以及Java类库的实现。 拥有Java商标的Oracle公司通过其名为HotSpot的Java虚拟机分发Java运行时环境。

Java开发套件(JDK)

Java Development Kit(JDK)是JRE的超集,包含Java程序员的工具,例如
javac编译器。 Oracle开发公司直接提供免费的Java开发工具包,或者由Oracle管理的OpenJDK开源项目免费提供Java开发工具包。

JVM的作用

JVM执行以下操作:

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

JVM提供了以下定义:

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

Java虚拟机架构

1. Classloader: Classloader是JVM的子系统,用于加载类文件。

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

3.堆:这是在其中分配对象的运行时数据区域。

4.堆栈: Java堆栈存储框架。它保存局部变量和部分结果,并在方法调用和返回中起作用。

每个线程都有一个专用的JVM堆栈,与该线程同时创建。 每次调用方法时都会创建一个新框架。 当框架的方法调用完成时,该框架将被销毁。

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

6.本机方法堆栈:它包含应用程序中使用的所有本机方法。

7.执行引擎:它包含:

  1. 虚拟处理器
  2. 解释器:读取字节码流,然后执行指令。
  3. 即时(JIT)编译器

参考


https://zh.wikipedia.org/wiki/Java_virtual_machine

翻译自: https://www.javacodegeeks.com/2017/10/introduction-java-virtual-machine-jvm.html

java jvm虚拟机

java jvm虚拟机_Java虚拟机(JVM)简介相关推荐

  1. Java指令全集_Java的JVM字节码指令集详解

    本文详细介绍了如何使用javap查看java方法中的字节码.以及各种字节码的含义,并且配以完善的案例,一步步,从头到尾带领大家翻译javap的输出.在文末还附有JVM字节码指令集表. 本文不适合没有J ...

  2. java jvm原理_JAVA和JVM运行原理

    JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器.它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序. 编译器负责把Java ...

  3. jvm优化_Java中JVM,JIR,JRE和JDK之间的区别

    jvm优化 JRE,JVM和JDK是您经常与Java编程语言结合使用的三个术语,大多数人会混淆它们或认为它们都是相同的. 在本文中,您将了解什么是Java运行时(JRE),什么是Java虚拟机(JVM ...

  4. java内存 海子_Java虚拟机:JVM内存模型和volatile详解

    JVM内存模型和volatile详解 Java内存模型 随着计算机的CPU的飞速发展,CPU的运算能力已经远远超出了从主内存(运行内存)中读取的数据的能力,为了解决这个问题,CPU厂商设计出了CPU内 ...

  5. java pc计数器_java虚拟机-程序计数器PC Register

    什么是程序计数器? 程序计数器是一块 较小 的内存空间,它可以看做是当前线程所执行的字节码的 行号指示器 :在虚拟机的概念模型里(仅仅是概念模型,各种虚拟机可能会通过一些更高效的方式去实现),字节码解 ...

  6. java 机器码 虚拟机_Java虚拟机:源码到机器码

    无论什么语言写的代码,其到最后都是通过机器码运行的,无一例外.那么对于 Java 语言来说,其从源代码到机器码,这中间到底发生了什么呢?这就是今天我们要聊的. 如下图所示,编译器可以分为:前端编译器. ...

  7. a java虚拟机_Java虚拟机

    内存分配以及回收 Java虚拟机运行时数据区,分为以下几个模块,包含所有线程共有的数据区和线程单独享有的数据区. 程序计数器:字节码行号,通过这个计数器来选取下一条需要执行的指令,线程独有. 虚拟机栈 ...

  8. java 内存情况_java查看jvm内存使用情况

    java查看jvm内存使用情况 (2012-03-22 15:50:54) 标签: jvm 内存 虚拟机 分配 it java.lang.Runtime类提供了查看当前JVM内存的使用情况.每个jav ...

  9. java帧结构_Java虚拟机运行时栈帧结构--《深入理解Java虚拟机》学习笔记及个人理解(二)...

    Java虚拟机运行时栈帧结构(周志明书上P237页) 栈帧是什么? 栈帧是一种数据结构,用于虚拟机进行方法的调用和执行. 栈帧是虚拟机栈的栈元素,也就是入栈和出栈的一个单元. 2018.1.2更新(在 ...

最新文章

  1. python折线图样式_011 利用Python进行数据可视化
  2. gson 自定义对象转换格式
  3. 人工智能工程师学习路线
  4. python elasticsearch 入门教程(一)
  5. ElementUI dialog弹框 退出时重置表单数据
  6. 医药/医疗/互联网医疗平台/问诊/挂号/开药/处方/复诊/患者管理/开药问诊/视频问诊/电话问诊/图文问诊/医生端/医师认证/医院/药品/续方/常用处方/电子处方/抢单/接诊/退诊/预约/科室/开方
  7. 速成pytorch学习——1天
  8. 雷林鹏分享:PHP 表单验证
  9. (转)javascript 内存泄露工具使用
  10. winform画图 抗锯齿
  11. 华为 USG6000防火墙管理员密码重置(配置会清空)
  12. 华为rh5885服务器oid_高性能全冗余 华为RH5885 V3服务器解析
  13. win10一键重置win10,解决所有系统bug,不删除任何文件和应用
  14. 解决bmp图片文件宽度不是4的倍数
  15. 本科计算机专业是机试,华东师大计算机专业复试上机复习攻略+机试技巧
  16. 2022-0828-0640,中文分词,逆向最大匹配算法 RMM
  17. CAD编辑工具中如何查找图纸中的坐标点的位置
  18. 微博登入php,ThinkPHP接入微博登录
  19. E码通电子凭证服务平台 通用接口接入规范
  20. 房产管理系统中CAD图形管理分析

热门文章

  1. 【学习笔记】信息学竞赛中的概率与期望小结
  2. 【数位DP】CF 54C,509C,431D,628D,855E,1245F,95D
  3. [COCI] Zamjena
  4. P6466-分散层叠算法(Fractional Cascading)【模板】
  5. 牛客-牛牛的猜球游戏
  6. jzoj3783-[NOIP2014模拟8.19]签到题【结论题】
  7. jzoj4815-ksum【堆】
  8. jzoj3236-矮人排队【权值线段树】
  9. jzoj3384-理工男【欧拉定理,gcd,数论】
  10. Sentinel(二十一)之Sentinel Dashboard控制台日志路径设置