JVM虚拟机详解

2023-05-16

一、JVM简介

JVM是Java Virtual Machine(Java虚拟机)的缩写,简单来说JVM是用来解析和运行Java程序的。

虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

 Java语言的一个非常重要的特点就是与平台的无关性,而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。

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

1、图解JVM

从Java平台的逻辑结构上来看,我们可以从下图来了解JVM:

从上图能清晰看到Java平台包含的各个逻辑模块,也能了解到JDK与JRE的区别,对于JVM自身的物理结构,请看下图: 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JVM虚拟机详解 的相关文章

随机推荐

  • Python中画图时候的线类型

    在Python中用matplotlib画图的时候 xff0c 为了区分曲线的类型 xff0c 给曲线上面加一些标识或者颜色 以下是颜色和标识的汇总 颜色 xff08 color 简写为 c xff09 xff1a 蓝色 xff1a 39 b
  • Ubuntu20.04中,安装微信步骤总结

    先安装git xff08 如果已安装 xff0c 清忽略 xff09 sudo apt install git 检查git是否安装成功 xff08 如果已安装 xff0c 清忽略 xff09 git version 安装deepin win
  • touchgfx 浮点数显示

    最近在研究touchgfx xff0c 太懵了 xff0c 也就好久没有更新博文了 xff0c 很坑的一点 xff0c 我就想在屏幕上显示一个小数 xff0c 翻看了N多的博文 xff0c 没一个管用的 xff0c 这里分享一下我的方案 选
  • 浅谈专线(SD-WAN)

    存在就一定有存在的道理 xff0c 今天要说的网络知识点是专线 我们一步步来 xff0c 先说专线是什么 xff0c 然后说专线的特性 xff0c 最后说专线的未来 一 什么是专线 专线就是专门分的线路 xff0c 是运营商为企业客户分配的
  • Ubuntu18系统设置自定义分辨率1920*1080

    一般安装完unbuntu后会发现系统分辨率没有19201080 xff0c 需要手动自定义添加19201080分辨率 打开终端 xff0c 输入命令 xff1a xrandr xff0c 可以查看系统所有分辨率 输入命令生成显示 xff1a
  • 基于饿了么骨架屏方案,使用Chrome扩展程序生成网页骨架屏

    前言 之前写移动端项目的时候 xff0c 使用骨架屏来解决首屏渲染时出现短暂空白现象 xff0c 采用了就是饿了么page skeleton webpack plugin方法 但是page skeleton webpack plugin需要
  • 别瞎删package-lock.json了

    作者 xff1a wuwhs 原文 xff1a https segmentfault com a 1190000039684460 0 前言 看完本文 xff0c 你将从整体了解依赖版本锁定原理 xff0c package lock jso
  • Naive-UI,尤大推荐的Vue组件库

    前言 早上坐地铁上班的时候 xff0c 刷到推特推送了naive组件库有关的信息 点进去看了介绍 xff0c 觉得不错 xff0c 就来分享一下 组件库文档地址 xff1a www naiveui com 值得注意的是 xff0c vue作
  • 2021下半年最新前端求职面试指导(完整版)

    两周前 xff0c 学弟通过了阿里六轮面试 xff0c 顺利拿到了 Offer xff01 负责高德地图的前端部署 薪资待遇很不错 xff0c 30K 15薪 在此之前 xff0c 他在国营公司干了3 年 xff0c 这次回到大厂 xff0
  • 一文讲懂npm link

    前言 在本地开发npm模块的时候 xff0c 我们可以使用npm link命令 xff0c 将npm 模块链接到对应的运行项目中去 xff0c 方便地对模块进行调试和测试 用法 包链接是一个两步过程 xff1a 1 为依赖项创建全局软链np
  • Typescript中的extends关键字

    前言 extends关键字在TS编程中出现的频率挺高的 xff0c 而且不同场景下代表的含义不一样 xff0c 特此总结一下 xff1a 表示继承 拓展的含义表示约束的含义表示分配的含义 基本使用 extends是 ts 里一个很常见的关键
  • 记一次 React 开源甘特图组件的性能优化,已合入 PR!

    背景 公司项目最近用到甘特图功能 xff0c 于是集成了一款开源的甘特图插件 甘特图的主要作用是项目管理 xff0c 可以用图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间 xff0c 如下图 image png
  • 【干货】Chrome插件(扩展)开发全攻略

    作者 xff1a 小茗同学 https www cnblogs com liuxianan p chrome plugin develop html comments 一 写在前面 我花了将近一个多月的时间断断续续写下这篇博文 xff0c
  • 很多人上来就删除的package-lock.json,还有这么多你不知道的(深度内容)

    作者 xff1a wuwhs 原文 xff1a https segmentfault com a 1190000039684460 0 前言 看完本文 xff0c 你将从整体了解依赖版本锁定原理 xff0c package lock jso
  • Svelte 原理浅析与评测

    简介 Svelte 是一个构建 web 应用程序的工具 xff0c 与 React 和 Vue 等 JavaScript 框架类似 xff0c 都怀揣着一颗让构建交互式用户界面变得更容易的心 但是有一个关键的区别 xff1a Svelte
  • CKS32F103C8T6最小系统板调试记录——SWD下载

    cks32f103是国产芯片 xff0c 由中科芯研发 xff0c 比起ST公司F103多了一个刹车功能 它有keil的器件安装包 xff0c 支持keil的开发 器件安装包链接 xff1a 链接 百度网盘链接 提取码 xff1a 0xyu
  • React useEvent:砖家说的没问题

    之前写了一篇文章 React Hooks 使用误区 xff0c 驳官方文档 1 xff0c 文中抛出了两个观点 xff1a 不是所有的依赖都必须放到依赖数组中deps 参数不能缓解闭包问题 这两个观点引起了剧烈的讨论 xff0c 当然大多数
  • Disabled PicPipeline: ImagesPipeline requires installing Pillow 4.0.0 or later

    目录 一 scrapy是什么 二 问题以及原因 三 解决办法 1 确保系统已经安装了 Pillow 库 2 安装 Pillow 库 3 在项目根目录中添加 Pillow 的 pth 文件 一 scrapy是什么 Scrapy是一个用于从网站
  • ERROR 1129 (HY000): Host ‘192.168.0.1‘ is blocked because of many connection errors; unblock with ‘m

    MySql远程链接报错 问题 xff1a mysql u root h 192 168 0 1 p Enter password ERROR 1129 HY000 Host 39 192 168 0 1 39 is blocked beca
  • JVM虚拟机详解

    一 JVM简介 JVM是Java Virtual Machine Java虚拟机 的缩写 简单来说JVM是用来解析和运行Java程序的 虚拟机是一种抽象化的计算机 通过在实际的计算机上仿真模拟各种计算机功能来实现的 Java虚拟机有自己完善