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

一篇文章入门Java虚拟机(JVM)

JVM全称是Java Virtual Machine,中文译名Java虚拟机。本质上是一个运行在计算机上的程序

一,JVM的功能

功能描述
解释和运行对字节码文件中的指令,实时的解释成机器码,让计算机执行
内存管理自动为对象、方法等分配内存;自动的垃圾回收机制,回收不再使用的对象
即使编译(Just-In-Time简称JIT)对热点代码进行优化,以提升Java程序的运行性能

二, 常见的JVM

名称作者支持版本特性适用场景
HotSpot(Oracle JDK版)Oracle所有版本适用最广泛,稳定可靠,社区活跃,JIT支持闭源,Oracle JDK默认虚拟机
HotSpot(Open JDK版)Oracle所有版本适用最广泛,稳定可靠,社区活跃,JIT支持开源,Open JDK默认虚拟机
GraalVMOracle11,17,19,企业版支持8多语言支持,高性能,JIT、AOT支持微服务、云原生架构需要多语言混合编程
Dragonwell JDKAlibaba标准版支持8,11,17;扩展板支持11,17基于OpenJDK的增强,高性能,bug修复,安全性提升,JWarmup、ElasticHeap、Wisp特性支持电商、物流、金融领域对性能要求比较高
Eclipse OpenJ9IBM9,11,17,19,20高性能,可扩展,JIT、AOT特性支持微服务、云原生架构

三,JVM规范

《JVM规范》由Oracle制定,内容主要包含了JVM在设计和实现时需要遵守的规范,主要包含class字节码文件的定义、类和接口的加载和初始化、指令集等内容
Java Language and Virtual Machine Specifications

四,JVM的组成

JVM组成描述
类加载器ClassLoader获取类和接口字节码数据
运行时数据区域负责管理JVM使用到的内存
执行引擎(即时编译器、解释器、垃圾回收器等)将字节码文件中的指令解释成机器码,同时使用即时编译器优化性能
本地接口调用本地已经编译的方法,比如虚拟机中提供的C/C++的方法

五,JVM内存模型

JVM内存模型详解

相关文章:

一篇文章入门Java虚拟机(JVM)

JVM全称是Java Virtual Machine,中文译名Java虚拟机。本质上是一个运行在计算机上的程序 一,JVM的功能 功能描述解释和运行对字节码文件中的指令,实时的解释成机器码,让计算机执行内存管理自动为对象、方法等分配内存&#xff1…...

vue3里面的组件实例类型(包括原生的html标签类型)

在 通过 ref(null)获取组件的时候,我们想要为 组件标注组件类型,可以通过 any 类型来进行标注,但是很明显,这些的代码很不优雅,所以我们可以利用 vue3 里面的 InstanceType 来进行类型标注 这是…...

谷歌正式开放Imagen 3访问权限!OpenAI的GPT-4o连续两周迎来两次更新!|AI日报

文章推荐 马斯克Grok 2打响反内容限制第一枪,盛大网络狂欢!一起来看网友花式整活! GPT-4o一天迎来2大劲敌!Grok-2发布测试版!Gemini Live即刻上线! 今日热点 OpenAI发布chatgpt-4o-latest AI模型&#…...

C语言内存操作函数

目录 一. C语言内存操作函数 1. memcpy的使用和模拟实现 2. memmove函数 3. memset函数 4. memcmp函数 一. C语言内存操作函数 随着知识的不断积累,我们所想要实现的目标程序就会更加复杂,今天我们来学习一个新的知识叫做C语言内存操作函数&#x…...

深入探索 PyTorch:torch.nn.Parameter 与 torch.Tensor 的奥秘

标题:深入探索 PyTorch:torch.nn.Parameter 与 torch.Tensor 的奥秘 在深度学习的世界里,PyTorch 以其灵活性和易用性成为了众多研究者和开发者的首选框架。然而,即使是经验丰富的 PyTorch 用户,也可能对 torch.nn.Pa…...

成为Python砖家(1): 在本地查询Python HTML文档

目的 Python3 官方文档位于 https://docs.python.org/3/ , 有时候网络无法连接,或者连接速度慢, 这对于学习 Python 时的反馈造成了负面影响。准备一份本地 Python 文档可以让反馈更加及时。 下面给出 macOS 和 Win11 下的 Python 离线文档…...

深度学习基础—RMSprop算法与Adam 优化算法

1.RMSprop算法 1.1.算法流程 除了动量梯度下降法,RMSprop算法也可以加快梯度下降,这个算法的算法流程如下:深度学习基础—动量梯度下降法http://t.csdnimg.cn/zeGRo 1.2.算法原理 和动量梯度下降不同的是,对dW和db的变成了平方项…...

单片机原理及技术(六)—— 中断系统的工作原理

目录 一、AT89S51中断技术概述 二、AT89S51中断系统结构 2.1 中断请求源 2.2 中断请求标志寄存器 2.2.1 TCON 寄存器 2.2.2 SCON 寄存器 三、中断允许与中断优先级的控制 3.1 中断允许寄存器 IE 3.2 中断优先级寄存器 IP 四、响应中断请求的条件 五、外部中断的触发…...

Angular路由使用

Angular路由是Angular框架中一个非常重要的特性,开发者可以根据URL的不同来动态地加载和显示不同的组件,从而构建出单页面应用(SPA)。 以下是Angular路由使用的基本步骤和要点: 1. 安装和配置路由模块 首先&#xf…...

【JVM】深入理解类加载机制(一)

深入理解类加载机制 Klass模型 Java的每个类,在JVM中都有一个对应的Klass类实例与之对应,存储类的元信息如:常量池、属性信息、方法信息…从继承关系上也能看出来,类的元信息是存储在元空间的。普通的Java类在JVM中对应的是InstanceKlass(C)…...

区块链浏览器需求整理

用户需求 普通用户 便捷查询交易记录:能够轻松找到自己或特定地址的交易详情,包括交易时间、金额、状态等。查看账户余额:实时了解地址的余额情况。追踪资产流向:了解自己的资产在区块链上的转移路径。 开发者 智能合约调试&a…...

Laravel 表单验证功能重定向判断

判断主要针对 API 请求和普通页面请求,即 API 的表单验证失败直接响应 JSON,而页面的表单验证失败正常重定向。 看网上基本上是继承 FormRequest 类来实现,其实直接修改异常处理的 Handler 类即可,非常简单。 打开 app/Exception…...

MATLAB口罩检测系统

一、应用背景 作为数字图像处理和计算机视觉领域的一个重要组成部分,利用摄像机对图像进行采集,从图像中检测人脸并进行口罩穿戴的识别的有着非常重要的研究意义和应用价值。面对突如其来的新型肺炎疫情,人们生活秩序被严重打乱。跟普通流感…...

LeetCode 第三十一天 2024.8.18

1. :买卖股票的最佳时机 题目链接: 121. 买卖股票的最佳时机 - 力扣(LeetCode) 应用条件: 难点: # 确定dp数组(dp table)以及下标的含义:dp数组由len(prices)个[][]组成&#xff…...

Linux驱动学习之点灯(一)

学习不同的板子我们都是从点灯开始,linux驱动也不例外 驱动开发基础知识 何为驱动? 驱使硬件正常工作的代码就叫做驱动。 在一些mcu里: 无非就是直接操作寄存器,或者用库函数初始化外设,使外设正常工作如初始化iic&…...

从HTTP到HTTPS:SSL加密如何重塑互联网安全格局

从HTTP到HTTPS:SSL加密如何重塑互联网安全格局 随着互联网技术的飞速发展,网络安全问题日益凸显,保护用户数据的安全性和隐私性成为了不可忽视的重要议题。从HTTP(超文本传输协议)到HTTPS(超文本传输安全协…...

QT网络编程: 实现UDP通讯设置

目录 一.widget.ui界面设计 二.创建UDP通信 1.pro文件添加network模块。 2.添加对应头文件 3.定义槽函数,即与 UI 中的按钮点击事件相关联的函数 4.定义类的私有成员 5.关闭按钮 6.信息处理 7.绑定端口 8.发送信息 9.效果图 三.代码演示 1.widget.h 2.…...

机器学习第十一章--特征选择与稀疏学习

一、子集搜索与评价 我们将属性称为 “特征”(feature),对当前学习任务有用的属性称为 “相关特征”(relevant feature)、没什么用的属性称为 “无关特征”(irrelevant feature).从给定的特征集合中选择出相关特征子集的过程&…...

dm 到 dm 的 HS 同步部署

一、数据库部署 完成两节点数据库部署并初始化,配置参数如下: 节点 192.168.2.132 192.168.2.133 数据库版本 DM8 DM8 实例名 DM1 DM2 端口号 5236 5236 数据文件路径 /home/dmdba/dmdata /home/dmdba/dmdata 二、 dmhs 部署 1. 部署…...

ShardingSphere、雪花算法、分布式id生成器CosID概述

ShardingSphere 用处:sharding是分片的意思,sphere是球(生态的意思)。用来做分库分表的生态的。一个订单表太大,查询会很慢,要分表,分为3个表,这样查询会快一点,所以有了…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

基础测试工具使用经验

背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...