当前位置: 首页 > news >正文

【JVM】一、认识JVM

在这里插入图片描述

文章目录

  • 1、虚拟机
  • 2、Java虚拟机
  • 3、JVM的整体结构
  • 4、Java代码的执行流程
  • 5、JVM的分类
  • 6、JVM的生命周期

1、虚拟机

虚拟机,Virtual Machine,一台虚拟的计算机,用来执行虚拟计算机指令。分为:

  • 系统虚拟机:如VMware,是完全对物理计算机的仿真
  • 程序虚拟机:如JVM,专门为执行单个计算机程序而设计,JVM中执行的指令就是Java字节码指令

不论是哪种类型虚拟机,其上面运行的软件或者程序,都被限制于虚拟机所提供的资源之内。

2、Java虚拟机

JVM,即Java虚拟机,一台处理Java字节码文件(解释为二进制文件)的虚拟计算机,Java程序运行在Java虚拟机内部。

在这里插入图片描述


JVM运行在操作系统之上,并没有与计算机的硬件做直接的交互。(因此,不同的操作系统,对应着不同的JVM)

JVM ⇒ JRE ⇒ JDK三者的关系:

在这里插入图片描述

在这里插入图片描述

3、JVM的整体结构

以HotSpot为例:

在这里插入图片描述

以上架构分三层看:(首先javac编译器将xx.java源文件编译为xx.class字节码文件)

  • 最上层由类装载器将字节码文件加载到内存中,生成一个大的class对象
  • 中间层,其中方法区、堆区是所有线程共享,而栈、程序计数器、寄存器是一个线程一个
  • 最下层,执行引擎里包括解释器、JIT即时编译器、GC垃圾回收器

上面结构图再详细:

在这里插入图片描述

4、Java代码的执行流程

Java做为一种跨平台的语言,一次编译,到处运行。即Java源代码被成功编译为.class字节码后,换平台运行,无需再次编译。

在这里插入图片描述

具体流程为:

  • Java源文件x.java被编译器javac.exe(JDK自带)编译成字节码文件x.class
  • 类装载器加载字节码文件到JVM
  • JVM执行引擎中的解释器将字节码文件处理成二进制文件
  • 操作系统执行二进制文件和硬件进行交互
    在这里插入图片描述

PS:Java虚拟机不关心运行在其内部的程序是用的什么语言,只要是遵循其规范编译的字节码文件,就都能运行。

在这里插入图片描述

换言之,不是牛在Java,而是JVM。Java是跨平台的语言 ⇐ JVM是跨语言的平台

5、JVM的分类

  • Sun Classic VM , 1996 + Java1.0 + 只有解释器,没有JIT即时编译器(因此性能较差)
  • Exact VM,Java1.2,准确式内存管理,可直到内存中某个位置的数据具体是什么类型
  • HotSpot VM,JDK1.3时,成为默认的虚拟机
  • JRockit VM,专注于服务器端,不包含解释器
  • IBM的J9,与上面的HotSpot、JRockit是三大商用虚拟机,2017年开源,命名为Open J9
  • KVM和CDC/CLDC Hotspot
  • Microsoft JVM
  • Taobao JVM,阿里

6、JVM的生命周期

STEP1:启动

JVM的启动时通过引导类加载器bootstrap class loader创建一个初始类initial class来完成的,不同的虚拟机,这个类也不同

STEP2:执行

开始执行Java程序时,JVM开始运行,程序执行结束,JVM也就停止了(jsp看JVM进程,会发现其随着程序的结束而结束)

STEP3:退出
  • 程序正常执行结束,JVM退出
  • 程序执行中遇到异常或错误,且一值向上throw到了main方法,main再抛,就到JVM,JVM退出
  • 操作系统出现错误也会可知JVM进程终止,JVM退出
  • 某个线程调用Runtime类或System类的exit方法,或者说是Runtime类的halt方法(底层是native halt0方法)

在这里插入图片描述

相关文章:

【JVM】一、认识JVM

文章目录 1、虚拟机2、Java虚拟机3、JVM的整体结构4、Java代码的执行流程5、JVM的分类6、JVM的生命周期 1、虚拟机 虚拟机,Virtual Machine,一台虚拟的计算机,用来执行虚拟计算机指令。分为: 系统虚拟机:如VMware&am…...

[SWPUCTF 2021 新生赛]Do_you_know_http已

打开环境 它说用WLLM浏览器打开,使用BP抓包,发送到重发器 修改User-Agent 下一步,访问a.php 这儿他说添加一个本地地址,它给了一个183.224.40.160,我用了发现没用,然后重新添加一个地址:X-Forwa…...

hadoop01_完全分布式搭建

hadoop完全分布式搭建 1 完全分布式介绍 Hadoop运行模式包括:本地模式(计算的数据存在Linux本地,在一台服务器上 自己测试)、伪分布式模式(和集群接轨 HDFS yarn,在一台服务器上执行)、完全分…...

【每日一题】得到山形数组的最少删除次数

文章目录 Tag题目来源解题思路方法一:最长递增子序列 写在最后 Tag 【最长递增子序列】【数组】【2023-12-22】 题目来源 1671. 得到山形数组的最少删除次数 解题思路 方法一:最长递增子序列 前后缀分解 根据前后缀思想,以 nums[i] 为山…...

2023年,为什么汽车依然有很多小毛病?

汽车出现小毛病是一个复杂的问题,其原因涉及到汽车本身的设计、制造质量、维护保养以及使用环境等多个方面。只有汽车制造商、车主和社会各界共同努力,才能够减少汽车的小毛病,提高汽车的可靠性和安全性。 比如,汽车的维护和保养…...

yocto系列讲解[实战篇]93 - 添加Qtwebengine和Browser实例

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 概述集成meta-qt5移植过程中的问题问题1:virtual/libgl set to mesa, not mesa-gl问题2:dmabuf-server-buffer tries to use undecl…...

Python实验报告十一、自定义类模拟三维向量及其运算

一、实验目的: 1、了解如何定义一个类。 2、了解如何定义类的私有数据成员和成员方法。 3、了解如何使用自定义类实例化对象。 二、实验内容: 定义一个三维向量类,并定义相应的特殊方法实现两个该类对象之间的加、减运算(要…...

机器学习 | 聚类Clustering 算法

物以类聚人以群分。 什么是聚类呢? 1、核心思想和原理 聚类的目的 同簇高相似度 不同簇高相异度 同类尽量相聚 不同类尽量分离 聚类和分类的区别 分类 classification 监督学习 训练获得分类器 预测未知数据 聚类 clustering 无监督学习,不关心类别标签 …...

IntelliJ IDEA 2023.3 新功能介绍

IntelliJ IDEA 2023.3 在众多领域进行了全面的改进,引入了许多令人期待的功能和增强体验。以下是该版本的一些关键亮点: IntelliJ IDEA mac版下载 macappbox.com/a/intellij-idea-for-mac.html 1. AI Assistant 的全面推出 IntelliJ IDEA 2023.3 中&am…...

2. 行为模式 - 命令模式

亦称: 动作、事务、Action、Transaction、Command 意图 命令模式是一种行为设计模式, 它可将请求转换为一个包含与请求相关的所有信息的独立对象。 该转换让你能根据不同的请求将方法参数化、 延迟请求执行或将其放入队列中, 且能实现可撤销…...

Java智慧工地源码 SAAS智慧工地源码 智慧工地管理可视化平台源码 带移动APP

一、系统主要功能介绍 系统功能介绍: 【项目人员管理】 1. 项目管理:项目名称、施工单位名称、项目地址、项目地址、总造价、总面积、施工准可证、开工日期、计划竣工日期、项目状态等。 2. 人员信息管理:支持身份证及人脸信息采集&#…...

php学习02-php标记风格

<?php echo "这是xml格式风格" ?><script language"php">echo 脚本风格标记 </script><% echo "这是asp格式风格" %>推荐使用xml格式风格 如果要使用简短风格和ASP风格&#xff0c;需要在php.ini中对其进行配置&#…...

13.1 jar文件

13.1 jar文件 java归档&#xff08;JAR&#xff09;文件&#xff0c;将应用程序打包后仅提供的单独文件&#xff0c;可包含类文件&#xff0c;也可包含图片、声音等其他类型文件。 JAR文件使用了大家熟悉的Zip压缩格式&#xff0c;pack200为通常的zip压缩算法&#xff0c;对类…...

论文阅读:Long-Term Visual Simultaneous Localization and Mapping

论文摘要指出&#xff0c;为了在长期变化的环境中准确进行定位&#xff0c;提出了一种新型的长期视觉SLAM&#xff08;同步定位与地图构建&#xff09;系统&#xff0c;该系统具备地图预测和动态物体移除功能。系统首先设计了一个高效的视觉点云匹配算法&#xff0c;将2D像素信…...

Docker 学习总结(80)—— 轻松驾驭容器,玩转 LazyDocker

前言 LazyDocker 是一个用户友好的命令行工具,简化了 Docker 的管理。它能够通过单一命令执行常见的 Docker 任务,如启动、停止、重启和移除容器。LazyDocker 还能轻松查看日志、清理未使用的容器和镜像,并自定义指标。 简绍 LazyDocker 是一个用户友好的 CLI 工具,可以轻…...

Android 13 - Media框架(24)- MediaCodecList

这一节我们要了解 MediaCodecList 中的信息是如何加载的&#xff0c;以及这些信息是如何使用到的。 // static sp<IMediaCodecList> MediaCodecList::getLocalInstance() {Mutex::Autolock autoLock(sInitMutex);if (sCodecList nullptr) {MediaCodecList *codecList n…...

【稳定检索|投稿优惠】2024年交通运输与能源动力国际学术会议(IACTEP 2024)

2024年交通运输与能源动力国际学术会议(IACTEP 2024) 2024 International Academic Conference on Transportation and Energy Power(IACTEP) 一、【会议简介】 2024年交通运输与能源动力国际学术会议(IACTEP 2024)将在美丽的三亚盛大启幕。本次会议将聚焦交通运输与能源动力等…...

React学习计划-React16--React基础(三)收集表单数据、高阶函数柯里化、类的复习

1. 收集表单数据 包含表单的组件分类 受控组件——页面中所有输入类的DOM,随着输入&#xff0c;把值存维护在状态里&#xff0c;需要用的时候去状态里取值&#xff08;推荐&#xff0c;避免了过渡使用ref&#xff09;非受控组件——页面中所有输入类的DOM&#xff0c;现用现取…...

研究生课程 |《数值分析》复习

搭配往年真题册食用最佳。...

55 回溯算法解黄金矿工问题

问题描述&#xff1a;你要开发一座金矿&#xff0c;地质学家已经探明了这座金矿中的资源分布&#xff0c;并用大小为m*n的网格grid进行了标注&#xff0c;每个单元格中的整数就表示这一单元格中的黄金数量&#xff1b;如果单元格是空的&#xff0c;那么就是0&#xff0c;为了使…...

Qwen3-Reranker-8B企业落地:保险条款智能比对系统重排模块部署

Qwen3-Reranker-8B企业落地&#xff1a;保险条款智能比对系统重排模块部署 1. 项目背景与需求场景 保险行业每天需要处理大量的条款文档比对工作&#xff0c;比如新老条款对比、不同产品条款差异分析、合规性检查等。传统的人工比对方式效率低下&#xff0c;容易出错&#xf…...

Qwen3-0.6B-FP8部署详解:如何用16GB显存跑通FP8量化版Qwen3轻量推理

Qwen3-0.6B-FP8部署详解&#xff1a;如何用16GB显存跑通FP8量化版Qwen3轻量推理 想体验最新的大语言模型&#xff0c;但被动辄几十GB的显存需求劝退&#xff1f;今天&#xff0c;我们来解决这个痛点。 Qwen3系列模型以其强大的推理和对话能力备受关注&#xff0c;但其标准版本…...

C盘清理与优化:为Realistic Vision V5.1模型文件腾出空间

C盘清理与优化&#xff1a;为Realistic Vision V5.1模型文件腾出空间 你是不是也遇到过这种情况&#xff1a;电脑C盘突然飘红&#xff0c;系统提示空间不足&#xff0c;想下载个新的AI模型&#xff0c;比如最近很火的Realistic Vision V5.1&#xff0c;却发现根本没地方放。看…...

AIVideo效果展示:输入主题输出专业视频,惊艳案例分享

AIVideo效果展示&#xff1a;输入主题输出专业视频&#xff0c;惊艳案例分享 1. 专业级视频生成效果概览 AIVideo一站式AI长视频工具能够将简单的文字主题转化为完整的专业视频作品。只需输入一个主题&#xff0c;系统就会自动完成从文案创作、分镜设计、画面生成到配音剪辑的…...

Ubuntu服务器中文乱码终极解决方案:从locale配置到阿里云重启避坑指南

Ubuntu服务器中文乱码终极解决方案&#xff1a;从locale配置到阿里云重启避坑指南 当你第一次在Ubuntu服务器上看到中文字符变成一堆问号或方框时&#xff0c;那种困惑和挫败感我深有体会。特别是在云服务器环境下&#xff0c;问题往往比本地环境更复杂——即使按照常规教程操作…...

第三次作业:django做动态(个人主页)

...

在六亩半,春天不是日历上的数字,而是泥土间的青草香

当城市里的春天还停留在气温起伏的天气预报里&#xff0c;六亩半手作文创园的春意&#xff0c;早已从土地深处探出头来。那是荠菜嫩芽拱开泥土的力道&#xff0c;是柳条抽出新绿的柔软&#xff0c;是孩子们蹲在田埂上、指尖沾满青草汁液的鲜活记忆。在这里&#xff0c;春天不是…...

云上实战说 | TapNow x Google Cloud 带您体验从灵感到资产的秒级转化

以下文章来源于谷歌云服务&#xff0c;作者 Google Cloud基于 Google Cloud Veo 和 Nano Banana 的前沿能力&#xff0c;TapNow (万物形象所) 邀您体验生成式 AI 如何重塑品牌与自我表达。现场实时生成风格化写真、宠物贴纸及周边&#xff0c;直观感受从灵感到资产的极速转化&a…...

电子元器件检测数据集VOC+YOLO格式1032张5类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数)&#xff1a;1032标注数量(xml文件个数)&#xff1a;1032标注数量(txt文件个数)&#xff1a;1032标注类别…...

收藏!小白也能看懂的大模型如何改写工业效率?

收藏&#xff01;小白也能看懂的大模型如何改写工业效率&#xff1f; 本文介绍了中控技术的TPT大模型在工业生产中的应用&#xff0c;它通过实时监控、自动计算最优参数和风险预警&#xff0c;帮助企业提升效率、降低成本。与互联网领域的AI应用不同&#xff0c;工业AI的价值更…...