JVM修炼印记之初识
文章目录
- JVM认识
- JVM的功能
- 常见JVM
- HotSpot的发展历程
JVM认识
-
Java虚拟机(Java Virtual Machine,JVM)是一个用于执行Java字节码的虚拟计算机。它是Java语言的核心,可以在不同的操作系统和硬件平台上运行Java程序。
-
JVM负责将Java源代码编译成字节码,然后执行字节码,将其转换为操作系统可以理解的机器码。
-
JVM提供了内存管理、垃圾回收和安全性等方面的支持。
-
Java程序员可以使用Java编译器将Java源代码编译成字节码,然后在任何支持JVM的平台上运行。
-
JVM 本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件。

JVM的功能

-
Java语言如果不做任何优化,性能不如C、C++等语言。

-
Java需要实时解释,主要是为了支持跨平台特性。

-
由于JVM需要实时解释虚拟机指令,不做任何优化性能不如直接运行机器码的C、C++等语言,解决方案:使用即时编译

常见JVM

HotSpot的发展历程

HotSpot是Oracle公司开发的Java虚拟机,是目前使用最广泛的JVM之一。它的发展历程可以简单概括为以下几个阶段:
-
初始版本(1999年):HotSpot最初是由Sun Microsystems公司开发的,旨在提高Java程序的性能。它采用了一种名为“混合模式”的执行方式,将字节码解释执行和即时编译相结合,以提高程序的执行效率。
-
HotSpot 1.3(2000年):HotSpot 1.3是第一个正式发布的版本,引入了许多新特性,包括轻量级锁、逃逸分析、对象压缩等。这些特性大大提高了Java程序的性能和可伸缩性。
-
HotSpot 1.4(2002年):HotSpot 1.4进一步增强了性能和可伸缩性,引入了新的垃圾回收器,包括并行垃圾回收器和CMS垃圾回收器。这些垃圾回收器可以更好地管理内存,减少应用程序的停顿时间。
-
HotSpot 1.5(2004年):HotSpot 1.5是一个重要的版本,引入了许多新特性,包括自动内存管理、JIT编译器的优化等。这些特性大大提高了Java程序的性能和可伸缩性,使得Java成为了一种更加高效的编程语言。
-
HotSpot 1.6(2006年):HotSpot 1.6进一步增强了性能和可伸缩性,引入了新的垃圾回收器,包括G1垃圾回收器。这些垃圾回收器可以更好地管理内存,减少应用程序的停顿时间。
-
HotSpot 1.7(2011年):HotSpot 1.7引入了新的垃圾回收器,包括G1垃圾回收器和CMS垃圾回收器的改进版。同时,它还引入了新的语言特性,包括钻石操作符、try-with-resources语句等。
-
HotSpot 1.8(2014年):HotSpot 1.8是当前最新的版本,引入了许多新特性,包括lambda表达式、Stream API等。同时,它还提高了性能和可伸缩性,引入了新的垃圾回收器,包括G1垃圾回收器的改进版。
自HotSpot 1.8发布以来,Java虚拟机和Java语言都经历了许多变化,以下是HotSpot在2014年以后的主要发展: -
HotSpot 9(2017年):HotSpot 9是一个重要的版本,引入了模块化系统(Java Platform Module System,JPMS),这是Java 9的一个重要特性。JPMS允许开发人员将Java代码组织成模块,以提高可维护性和安全性。
-
HotSpot 10(2018年):HotSpot 10是一个小版本,引入了一些新特性,包括本地变量类型推断、应用类数据共享等。本地变量类型推断允许开发人员在不显式指定变量类型的情况下声明变量,从而提高代码的可读性和简洁性。应用类数据共享则可以减少JVM的启动时间和内存占用。
-
HotSpot 11(2018年):HotSpot 11是一个重要的版本,是Java 11的默认JVM。它引入了许多新特性,包括ZGC垃圾回收器、Epsilon垃圾收集器、HTTP客户端API等。ZGC垃圾回收器是一种可伸缩的垃圾回收器,可以在数百兆字节到数千兆字节的堆大小范围内实现低延迟的垃圾回收。Epsilon垃圾收集器则是一种无操作的垃圾收集器,它不会回收任何对象,用于测试和性能调优。HTTP客户端API则是一种新的HTTP客户端实现,提供了更好的性能和可扩展性。
-
HotSpot 14(2020年):HotSpot 14引入了一些新特性,包括JFR事件流API、ZGC并发堆释放、NUMA感知的内存分配等。JFR事件流API允许开发人员将Java Flight Recorder(JFR)事件导出到其他系统中进行分析和处理。ZGC并发堆释放可以在垃圾回收期间释放堆内存,减少应用程序的停顿时间。NUMA感知的内存分配可以提高多个虚拟机在NUMA架构下的性能。
相关文章:
JVM修炼印记之初识
文章目录 JVM认识JVM的功能常见JVMHotSpot的发展历程 JVM认识 Java虚拟机(Java Virtual Machine,JVM)是一个用于执行Java字节码的虚拟计算机。它是Java语言的核心,可以在不同的操作系统和硬件平台上运行Java程序。 JVM负责将Java…...
开关电源老化试验和性能检测系统软件
开关电源自动测试系统由PC(工控机)、测试工装、可编程直流电源、数字示波器、可编程直流电子负载、继电器模块等部分组成,并通过RS232/LAN通讯总线、测试夹具以及其它线缆等进行连接,为系统组成结构。PC与可编程直流电源、数字示波器、可编程直流电子负载…...
水库大坝可视化智能远程监管方案,助力安全监测智能巡检
一、背景需求 水库大坝作为防洪度汛的重要设施,其安全问题直接关系到人民群众的生命财产安全。因此,必须加强对大坝水库的安全管理,对水库除险加固和运行管护要消除存量隐患,实现常态化管理,同时要配套完善重点小型水…...
C#学习系列之虚方法和多态
C#学习系列之虚方法和多态 啰嗦设计原则(六大类其中之一)基类的引用使用 共性与差异虚方法和多态的武器使用 其他总结 啰嗦 基础学习。 设计原则(六大类其中之一) **依赖倒置原则:**依赖抽象类,不依赖具体…...
面试算法44:二叉树中每层的最大值
题目 输入一棵二叉树,请找出二叉树中每层的最大值。例如,输入图7.4中的二叉树,返回各层节点的最大值[3,4,9]。 分析:用一个队列实现二叉树的广度优先搜索 由于要找出二叉树中每层的最大值,因…...
JWT的头部、载荷和签名分别包含哪些信息?
JWT(JSON Web Token)由三部分组成:头部(Header)、载荷(Payload)和签名(Signature)。每个部分都是经过Base64编码的JSON字符串。 1:头部(Header): 头部通常包含两个信息:令牌类型(typ)和所用的加密算法(alg)。令牌类型(typ)指示该令牌类型为JWT。加密算法(…...
【烧火柴问题】奇思妙想火柴
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
C++数据结构算法篇Ⅰ
C数据结构算法篇Ⅰ 📟作者主页:慢热的陕西人 🌴专栏链接:C算法 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 主要内容讲解数据结构中的链表结构 文章目录 C数据…...
Python selenium获取元素信息
视频版教程:一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium 主要text属性和三个方法get_attribute(),get_property(),get_dom_attribute() text属性获取元素的文本信息; get_attribute(),ge…...
测试Winsock的select
说明 实现了一个回显一行字符串的服务器:客户端发送一行字符串,一’\n’结尾,服务器接受完一行后就原封不动地发回给客户端。 windows下对select的能监控的Socket数量是有限制的,若超过,一种方案是再开一个线程。 #i…...
CentOS 搭建 Hadoop3 高可用集群
Hadoop FullyDistributed Mode 完全分布式 spark101spark102spark103192.168.171.101192.168.171.102192.168.171.103namenodenamenodejournalnodejournalnodejournalnodedatanodedatanodedatanodenodemanagernodemanagernodemanagerrecource managerrecource managerjob hist…...
ModuleNotFoundError: No module named ‘paddle.fluid.incubate.fleet‘
在使用rocketqa的时候可能会遇到下面的问题: 问题: 解决方法: 这完全是paddlepaddle的问题。 在rocketqa/utils/optimization.py出现下面的语句,这个时候直接把出错的注释掉就可以,因为它完全没有用到。(…...
【Java】Java中的引用类型
强引用(StrongReference) 通过new直接创建的对象,只要该对象还可以被其它对象使用或访问到,就不会被回收 软引用(SoftReference) 引用一个对象,该对象在系统内存溢出不足时,会自动…...
File类、方法递归
File:代表文本 IO流:读写数据 1、 File 类构建对象的方式是什么样的? File 的对象可以代表哪些东西? 注意 File 对象既可以代表文件、也可以代表文件夹。 ● File 封装的对象仅仅是一个路径名,这个路径可以是存在的,…...
MySQL - 系统库之 sys
sys 系统库用于管理和监控MySQL服务器的性能和运行状态: 用途: 性能监控和分析:sys 系统库用于监控MySQL服务器的性能和资源利用情况。它提供了各种视图和函数,用于分析查询性能、资源利用、等待事件等方面的数据。性能调优&…...
GoLong的学习之路(十七)基础工具之Gin框架使用JWT(前后端分离)
文章目录 JWT安装JWT使用什么是Claims默认Claims自定义Claims生成JWT解析JWT 在gin框架中使用JWT获取Token渠道定义方法设置中间件注册路由 总结一下 JWT JWT全称JSON Web Token是一种跨域认证解决方案,属于一个开放的标准,它规定了一种Token实现方式&a…...
【代码数据】2023粤港澳大湾区金融数学建模B题分享
基于中国特色估值体系的股票模型分析和投资策略 首先非常建议大家仔细的阅读这个题的题目介绍,还有附赠的就是那个附件里的那几篇材料,我觉得你把这些内容读透理解了,就可以完成大部分内容。然后对于题目里它主要第一部分给出了常用的估值模…...
大数据之LibrA数据库系统告警处理(ALM-12006 节点故障)
告警解释 Controller按30秒周期检测NodeAgent状态。当Controller连续三次未接收到某个NodeAgent的状态报告时,产生该告警。 当Controller可以正常接收时,告警恢复。 告警属性 告警ID 告警级别 可自动清除 12006 严重 是 告警参数 参数名称 参…...
poi兴趣点推荐数据集介绍
介绍 foursquare数据集包含2153471个用户,1143092个场所,1021970个签到,27098490个社交关系以及用户分配给场所的2809581评级,我们常用的是根据NYC和TKY都是从该数据集中抽取出来的。 下载地址:https://sites.google.…...
把两个4点的结构相加
( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点,训练集中只有5张图片,让A中有4个1,B全是0,排列组合,统计迭代次数并排序。 其中有3个结构 3差值结构 迭代次数 4差值结构 迭代次数 31 3-2 0 1 …...
【AI问答/前端】前端满天过海局(一)
Axios感觉就像一堆ajax函数,再高深我就不懂了,Pinia可以当成是各组件之间的变量主动响应?这边改了,那边用到这个变量的也变了?跟vue插件传参不一样吧,感觉,vue还要写插槽传值(好像是这样,太久我忘了)。router这个路由我就蛋疼了,他上面的url是真变了呀,他是客户端…...
通过curl命令快速测试Taotoken的API连通性与返回
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过curl命令快速测试Taotoken的API连通性与返回 在集成大模型服务时,直接使用curl命令进行API测试是一种高效且通用的…...
TVA视觉智能体专栏(三):零基础看懂TVA智能体:不是大模型噱头,是工业落地刚需技术
摘要:很多新人误以为TVA是概念炒作,实则是智能制造柔性质检的核心解决方案。本文用通俗工程视角拆解TVA核心架构,详解Transformer注意力机制、DRL强化学习、FRA因式分解的协同逻辑,新手也能快速读懂智能体视觉底层逻辑。一、前言&…...
明日方舟自动化工具终极指南:Arknights-Mower 完整使用教程
明日方舟自动化工具终极指南:Arknights-Mower 完整使用教程 【免费下载链接】arknights-mower 《明日方舟》长草助手 项目地址: https://gitcode.com/gh_mirrors/ar/arknights-mower 作为一款专为《明日方舟》玩家设计的开源自动化工具,Arknights…...
2026校招人才整体素质洞察
导读:这份《2026 校招人才素质洞察报告》由前程无忧发布,围绕 AI 时代校招变局,依托 800 万 测评数据,系统剖析应届毕业生的素质特征,提出人才筛选新坐标,为企业校招提供战略方向与实操参考。关注公众号&a…...
深度解析Windows运行库兼容性:VisualCppRedist AIO完整技术方案
深度解析Windows运行库兼容性:VisualCppRedist AIO完整技术方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist Visual C运行库缺失问题是Windows系统…...
基于离散阻抗与线性回归的嵌入式电池健康状态在线估计方法
1. 项目概述:当电池健康遇上“轻量级”机器学习在电动汽车、储能电站乃至消费电子领域,锂离子电池的健康状态(State of Health, SoH)都是一个绕不开的核心指标。它直接决定了设备的续航能力、安全边界乃至剩余价值。传统的BMS&…...
DeepSeek企业私有化部署隐私加固手册(含密钥轮转SOP、审计日志留存策略、跨境传输断点协议)
更多请点击: https://kaifayun.com 第一章:DeepSeek企业私有化部署隐私保护总览 DeepSeek大模型的企业私有化部署,以“数据不出域、模型可审计、推理可管控”为核心设计原则,构建端到端的隐私保护技术栈。该方案支持在客户自有I…...
macOS微信防撤回终极指南:3分钟掌握WeChatIntercept完整使用方法
macOS微信防撤回终极指南:3分钟掌握WeChatIntercept完整使用方法 【免费下载链接】WeChatIntercept 微信防撤回插件,一键安装,仅MAC可用,支持v3.7.0微信 项目地址: https://gitcode.com/gh_mirrors/we/WeChatIntercept 还在…...
ssm仓库管理信息系统(10091)
有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运行一键启动项目&…...
