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

【JVM篇】什么是jvm

文章目录

  • 🍔什么是Java虚拟机
  • 🛸Java虚拟机有什么用
  • 🌹Java虚拟机的功能
  • 🎈Java虚拟机的组成

在这里插入图片描述

🍔什么是Java虚拟机

JVM指的是Java虚拟机,本质上是一个运行在计算机上的程序,可以运行 Java字节码文件,可以运行Java,kotlin,Scala,groovy等语言

这里是引用
任务管理器启动的Java进程,其实是一个虚拟机进程,它会执行我们编写好的代码

比如我们编写并运行一个Java程序,在进程中就能够看到

import java.io.IOException;public class demo1 {public static void main(String[] args) throws IOException {System.in.read();}
}

运行后发现,程序发送了阻塞

并且我们可以发现,这里编译器是使用了java.exe来启动了这个程序
在这里插入图片描述
并且在当前的进程列表会显示这个进程
在这里插入图片描述
发现这里有3个Java进程,但是到底哪一个才是我们的Java进程呢
我们可以使用jps命令进行查看
在这里插入图片描述
发现id为1976的进程名是demo1,和我们的类名一样,所以这个就是我们正在启动的Java进程

并且Java虚拟机不仅仅可以运行Java程序,还可以运行其他语言的程序,比如kotlin

🛸Java虚拟机有什么用

为了支持Java中,编写一次,到处运行的跨平台的特性
在这里插入图片描述

🌹Java虚拟机的功能

在这里插入图片描述
下面来讲解一下什么是jvm的即时编译

我们来看下面这段代码

public class demo2 {public static void main(String[] args) {long start=System.currentTimeMillis();demo2 test=new demo2();test.jitTest();long end=System.currentTimeMillis();System.out.println("耗时:"+(end-start)+"ms");}public int add(int x, int y){return x+y;}public int jitTest(){int sum=0;for(int i=0;i<100000000;i++){sum+=add(i, i);}return sum;}
}

默认情况是打开即时编译的
在这里插入图片描述


下面我们加上-Xint这个参数,关闭即时编译功能,看看耗时多少
在这里插入图片描述
在这里插入图片描述

执行后发现,耗时比之前多了
在这里插入图片描述

🎈Java虚拟机的组成

jvm组成分为类加载子系统,运行时数据区,执行引擎,本地接口这四部分
在这里插入图片描述


在技术的道路上,我们不断探索、不断前行,不断面对挑战、不断突破自我。科技的发展改变着世界,而我们作为技术人员,也在这个过程中书写着自己的篇章。让我们携手并进,共同努力,开创美好的未来!愿我们在科技的征途上不断奋进,创造出更加美好、更加智能的明天!

在这里插入图片描述

相关文章:

【JVM篇】什么是jvm

文章目录 &#x1f354;什么是Java虚拟机&#x1f6f8;Java虚拟机有什么用&#x1f339;Java虚拟机的功能&#x1f388;Java虚拟机的组成 &#x1f354;什么是Java虚拟机 JVM指的是Java虚拟机&#xff0c;本质上是一个运行在计算机上的程序&#xff0c;可以运行 Java字节码文件…...

Vulnhub靶场 DC-9

目录 一、环境搭建 二、信息收集 1、主机发现 2、指纹识别 三、漏洞复现 1、dirsearch目录探测 2、sqlmap注入测试 3、文件包含漏洞 4、Knockd敲门服务 5、ssh爆破 ​​​​​​​6、提权 四、提取flag 一、环境搭建 Vulnhub靶机下载&#xff1a; 官网地址&#xff1a;https://…...

day2-理解 linux 云计算

1.解释服务器是什么&#xff1b; 服务器是一种高性能计算机&#xff0c;它的主要功能是提供计算服务和资源给其他计算机使用。在网络环境中&#xff0c;服务器扮演着重要的角色&#xff0c;它们可以存储和管理大量的数据&#xff0c;处理网络请求&#xff0c;提供应用程序运行…...

Android 13.0 开启禁用系统接收短信功能

1.概述 在13.0的系统rom定制化中,在一些wifi产品的机器中,对于系统4g部分的功能需要裁剪 比如拨打电话 接听电话 短信功能等这部分 需要禁用系统对应的功能,接下来就来初步分析下系统中接收短信部分功能,然后实现禁用接收短信功能 2.禁用和启用系统短信功能实现的核心类 …...

compile error ESP32cam.h no such file or directory

解决方法 可以参考这篇文章&#xff1a; But first, you will need to download the esp32cam.h library. For this go to Github and download the esp32cam Zip. GitHub - yoursunny/esp32cam: OV2640 camera on ESP32-CAM, Arduino library 具体就是下面的这篇重要的文章 …...

使用 Chainlit, Langchain 及 Elasticsearch 轻松实现对 PDF 文件的查询

在我之前的文章 “Elasticsearch&#xff1a;与多个 PDF 聊天 | LangChain Python 应用教程&#xff08;免费 LLMs 和嵌入&#xff09;” 里&#xff0c;我详述如何使用 Streamlit&#xff0c;Langchain, Elasticsearch 及 OpenAI 来针对 PDF 进行聊天。在今天的文章中&#xf…...

Gitee的使用教程(简单详细)

1.安装git&#xff08;我的电脑自带git&#xff0c;我没弄这步QAQ&#xff09; Git (git-scm.com)https://git-scm.com/ 安装好后在桌面点击鼠标右键会出现git GUI 和 git Bash&#xff08;没有的话点击显示更多选项&#xff09; 2.去gitee上注册一个账号 工作台 - Gitee.co…...

生成树(习题)

模板】最小生成树 生成树有两种方法&#xff0c;但是我只会克鲁斯卡尔算法&#xff0c;所以接下来下面的的题目都是按照这个算法来实现的&#xff0c;首先来见一下生么是这个算法&#xff0c;在之前的我写的一篇博客中有题使叫修复公路&#xff0c;其实这一题就是使用了这个算…...

ARMv8-AArch64 的异常处理模型详解之异常处理概述Handling exceptions

异常处理模型详解之异常处理概述 一&#xff0c;异常处理相关概念二&#xff0c;异常处理概述 一&#xff0c;异常处理相关概念 在介绍异常处理之前&#xff0c;有必要了解一些关于异常处理状态的术语&#xff1a; 当处理器响应一个异常时&#xff0c;我们称该异常被获取了&a…...

Ubuntu 18.04上安装cuDNN 8.9.6.50:一站式指南

Content 一、前言二、准备工作三、安装步骤1. 启用本地仓库2. 导入CUDA GPG密钥3. 更新仓库元数据4. 安装运行时库5. 安装开发者库6. 安装代码示例7. 另外一种安装办法 四、验证安装1. 验证cuDNN版本2. 测试示例代码 五、总结 一、前言 在深度学习领域&#xff0c;高效的计算资…...

Microsoft Word 超链接

Microsoft Word 超链接 1. 取消超链接2. 自动超链接2.1. 选项2.2. 校对 -> 自动更正选项2.3. Internet 及网络路径替换为超链接 References 1. 取消超链接 Ctrl A -> Ctrl Shift F9 2. 自动超链接 2.1. 选项 2.2. 校对 -> 自动更正选项 ​​​ 2.3. Internet…...

SparkJDBC读写数据库实战

默认的操作 代码val df = spark.read.format("jdbc").option("url", "jdbc:postgresql://localhost:5432/testdb").option("user", "username").option("password", "password").option("driver&q…...

代码随想录 -- 数组

文章目录 二分查找题目描述题解 移除元素题目描述题解&#xff1a;暴力解法题解&#xff1a;双指针法 有序数组的平方题目描述题解&#xff1a;暴力解法题解&#xff1a;双指针法 长度最小的子数组题目描述题解&#xff1a;暴力解法题解&#xff1a;滑动窗口&#xff08;双指针…...

【国产MCU】-CH32V307-基本定时器(BCTM)

基本定时器(BCTM) 文章目录 基本定时器(BCTM)1、基本定时器(BCTM)介绍2、基本定时器驱动API介绍3、基本定时器使用实例CH32V307的基本定时器模块包含一个16 位可自动重装的定时器(TIM6和TIM7),用于计数和在更新新事件产生中断或DMA 请求。 本文将详细介绍如何使用CH32…...

Node.js开发-fs模块

这里写目录标题 fs模块1) 文件写入2) 文件写入3) 文件移动与重命名4) 文件删除5) 文件夹操作6) 查看资源状态7) 相对路径问题8) __dirname fs模块 fs模块可以实现与硬盘的交互&#xff0c;例如文件的创建、删除、重命名、移动等&#xff0c;还有文件内容的写入、读取&#xff…...

探索Nginx:强大的开源Web服务器与反向代理

一、引言 随着互联网的飞速发展&#xff0c;Web服务器在现代技术架构中扮演着至关重要的角色。Nginx&#xff08;发音为“engine x”&#xff09;是一个高性能的HTTP和反向代理服务器&#xff0c;也是一个IMAP/POP3/SMTP代理服务器。Nginx因其卓越的性能、稳定性和灵活性&…...

相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…...

【从Python基础到深度学习】1. Python PyCharm安装及激活

前言&#xff1a; 为了帮助大家快速入门机器学习-深度学习&#xff0c;从今天起我将用100天的时间将大学本科期间的所学所想分享给大家&#xff0c;和大家共同进步。【从Python基础到深度学习】系列博客中我将从python基础开始通过知识和代码实践结合的方式进行知识的分享和记…...

片上网络NoC(3)——拓扑指标

目录 一、概述 二、指标 2.1 与网络流量无关的指标 2.1.1 度&#xff08;degree&#xff09; 2.1.2 对分带宽&#xff08;bisection bandwidth&#xff09; 2.1.3 网络直径&#xff08;diameter&#xff09; 2.2 与网络流量相关的指标 2.2.1 跳数&#xff08;hop coun…...

二叉树 ---- 所有结点数

普通二叉树的结点数&#xff1a; 递归法&#xff1a; 对二叉树进行前序or后序遍历&#xff1a; typedef struct Tree {int data;Tree* leftChild;Tree* rightChild; }tree,*linklist; //计算普通二叉树的结点数 int nodenums(linklist node) {if(node nullptr) return 0; …...

零中断迁移:企业级文档系统全流程实战指南

零中断迁移&#xff1a;企业级文档系统全流程实战指南 【免费下载链接】outline Outline 是一个基于 React 和 Node.js 打造的快速、协作式团队知识库。它可以让团队方便地存储和管理知识信息。你可以直接使用其托管版本&#xff0c;也可以自己运行或参与开发。源项目地址&…...

我花了 3 小时吃透:Spring AI 核心三剑客 ChatModel、Prompt、ChatResponse 到底怎么用?

你在学习 Spring AI 的时候&#xff0c;肯定遇到过这三个类&#xff1a;ChatModel、Prompt、ChatResponse看着眼熟&#xff0c;却总搞不清谁负责干嘛、代码里为啥要这么写&#xff1f;接下来就是我的理解。一、先搞懂&#xff1a;这三个东西是什么关系&#xff1f;在开始写代码…...

别再只用交叉熵了!深入对比YOLOv8中Focal Loss与CIoU Loss的改进效果与适用场景

深入解析YOLOv8损失函数优化&#xff1a;Focal Loss与CIoU Loss的实战对比与场景适配 当你在深夜调试YOLOv8模型时&#xff0c;是否遇到过这样的困境&#xff1a;明明增加了训练数据&#xff0c;小目标检测的准确率却始终上不去&#xff1f;或是发现模型对密集排列的物体总是漏…...

QQ音乐加密音频终极解密指南:qmcdump完整教程与实战应用

QQ音乐加密音频终极解密指南&#xff1a;qmcdump完整教程与实战应用 【免费下载链接】qmcdump 一个简单的QQ音乐解码&#xff08;qmcflac/qmc0/qmc3 转 flac/mp3&#xff09;&#xff0c;仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 你是…...

QGIS3.28最新版行政区合并避坑指南:县转市数据融合的3个关键检查点

QGIS 3.28行政区合并实战&#xff1a;县转市数据融合的3个关键检查点 当我们需要将县级行政区数据合并为市级边界时&#xff0c;看似简单的"线转面融合"操作背后&#xff0c;往往隐藏着诸多数据陷阱。许多中级用户在QGIS中执行这类操作时&#xff0c;明明步骤正确却频…...

JSON·学习笔记

“误报。我的安全阀一切正常。” “我们继续&#xff0c;今天我想解释一下什么是JSON。” “是啊&#xff0c;这个词我听过很多次了&#xff0c;什么意思&#xff1f;” “随着网络的发展&#xff0c;带有 JavaScript 的 HTML 页面开始主动与服务器通信并从服务器下载数据。为…...

Python开源代码管理避坑实战:从Git高级操作到Docker环境配置

前言&#xff1a;为什么你总在开源门前徘徊&#xff1f; “这个项目看起来好复杂&#xff0c;我连代码都看不懂...” “提交PR会不会被大佬嘲笑&#xff1f;” “环境配置又报错了&#xff0c;算了&#xff0c;下次再说吧” 如果你有过这些想法&#xff0c;别担心&#xff…...

Docker 部署 Vaultwarden:轻量级自托管密码管理解决方案

1. 为什么选择Vaultwarden作为自托管密码管理方案 在这个数字时代&#xff0c;我们每个人平均要管理超过100个在线账户的密码。传统的密码管理方式——用同一个简单密码注册所有网站&#xff0c;或者把密码写在记事本上——已经远远不能满足安全需求。这就是为什么像Bitwarden这…...

Sonic数字人效果展示:看静态图片如何“开口说话”生成流畅视频

Sonic数字人效果展示&#xff1a;看静态图片如何"开口说话"生成流畅视频 1. 数字人视频生成技术概览 数字人视频技术正在改变内容创作的方式。传统方法需要复杂的3D建模和动画制作&#xff0c;而现在的AI技术只需一张静态图片和一段音频&#xff0c;就能让图片中的…...

告别手动建模!用Blender GIS插件5分钟搞定CARLA地图(附OSM数据源)

告别手动建模&#xff01;用Blender GIS插件5分钟搞定CARLA地图&#xff08;附OSM数据源&#xff09; 在自动驾驶仿真领域&#xff0c;快速构建高精度地图一直是开发者的痛点。传统手动建模方式不仅耗时费力&#xff0c;还难以保证道路网络的拓扑准确性。现在&#xff0c;通过…...