JVM修炼印记之初识

news2024/11/26 1:39:17

文章目录

  • 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之一。它的发展历程可以简单概括为以下几个阶段:

  1. 初始版本(1999年):HotSpot最初是由Sun Microsystems公司开发的,旨在提高Java程序的性能。它采用了一种名为“混合模式”的执行方式,将字节码解释执行和即时编译相结合,以提高程序的执行效率。

  2. HotSpot 1.3(2000年):HotSpot 1.3是第一个正式发布的版本,引入了许多新特性,包括轻量级锁、逃逸分析、对象压缩等。这些特性大大提高了Java程序的性能和可伸缩性。

  3. HotSpot 1.4(2002年):HotSpot 1.4进一步增强了性能和可伸缩性,引入了新的垃圾回收器,包括并行垃圾回收器和CMS垃圾回收器。这些垃圾回收器可以更好地管理内存,减少应用程序的停顿时间。

  4. HotSpot 1.5(2004年):HotSpot 1.5是一个重要的版本,引入了许多新特性,包括自动内存管理、JIT编译器的优化等。这些特性大大提高了Java程序的性能和可伸缩性,使得Java成为了一种更加高效的编程语言。

  5. HotSpot 1.6(2006年):HotSpot 1.6进一步增强了性能和可伸缩性,引入了新的垃圾回收器,包括G1垃圾回收器。这些垃圾回收器可以更好地管理内存,减少应用程序的停顿时间。

  6. HotSpot 1.7(2011年):HotSpot 1.7引入了新的垃圾回收器,包括G1垃圾回收器和CMS垃圾回收器的改进版。同时,它还引入了新的语言特性,包括钻石操作符、try-with-resources语句等。

  7. HotSpot 1.8(2014年):HotSpot 1.8是当前最新的版本,引入了许多新特性,包括lambda表达式、Stream API等。同时,它还提高了性能和可伸缩性,引入了新的垃圾回收器,包括G1垃圾回收器的改进版。
    自HotSpot 1.8发布以来,Java虚拟机和Java语言都经历了许多变化,以下是HotSpot在2014年以后的主要发展:

  8. HotSpot 9(2017年):HotSpot 9是一个重要的版本,引入了模块化系统(Java Platform Module System,JPMS),这是Java 9的一个重要特性。JPMS允许开发人员将Java代码组织成模块,以提高可维护性和安全性。

  9. HotSpot 10(2018年):HotSpot 10是一个小版本,引入了一些新特性,包括本地变量类型推断、应用类数据共享等。本地变量类型推断允许开发人员在不显式指定变量类型的情况下声明变量,从而提高代码的可读性和简洁性。应用类数据共享则可以减少JVM的启动时间和内存占用。

  10. HotSpot 11(2018年):HotSpot 11是一个重要的版本,是Java 11的默认JVM。它引入了许多新特性,包括ZGC垃圾回收器、Epsilon垃圾收集器、HTTP客户端API等。ZGC垃圾回收器是一种可伸缩的垃圾回收器,可以在数百兆字节到数千兆字节的堆大小范围内实现低延迟的垃圾回收。Epsilon垃圾收集器则是一种无操作的垃圾收集器,它不会回收任何对象,用于测试和性能调优。HTTP客户端API则是一种新的HTTP客户端实现,提供了更好的性能和可扩展性。

  11. HotSpot 14(2020年):HotSpot 14引入了一些新特性,包括JFR事件流API、ZGC并发堆释放、NUMA感知的内存分配等。JFR事件流API允许开发人员将Java Flight Recorder(JFR)事件导出到其他系统中进行分析和处理。ZGC并发堆释放可以在垃圾回收期间释放堆内存,减少应用程序的停顿时间。NUMA感知的内存分配可以提高多个虚拟机在NUMA架构下的性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1161170.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[架构之路-252/创业之路-83]:目标系统 - 纵向分层 - 企业信息化的呈现形态:常见企业信息化软件系统 - 企业应用信息系统集成

目录 第一章 什么是企业应用信息系统集成What 1.1 简介 1.2 架构 二、为什么需要企业应用信息系统集成Why 三、如何实现企业应用信息系统集成 3.1 步骤 3.2 企业应用集成的层次 3.3 业务流程重组 第一章 什么是企业应用信息系统集成What 1.1 简介 企业应用信息系统集…

力扣刷题 day62:11-1

1.反转字符串中的元音字母 给你一个字符串 s ,仅反转字符串中的所有元音字母,并返回结果字符串。 元音字母包括 a、e、i、o、u,且可能以大小写两种形式出现不止一次。 方法一:双指针 #方法一:双指针 def reverseV…

国际多语言出海商城源码/返佣产品自动匹配拼单商城源码

源码介绍: 国际多语言出海商城返佣产品自动匹配订单拼单商城源码,8国多语言出海拼单商城。此网站是很多巴西客户定制的原型,已投放运营符合当地本地化。 多语言商城返利返佣投资理财派单自带余额宝,采取全新支付端口&#xff0c…

Mac电脑怎么运行 Office 办公软件

虽然 Office 软件也有 Mac 版本的,但是有蛮多小伙伴用起来还是感觉不得劲,毕竟接触了太久的 Windows,所以想要使用 Windows 版本的 Office 软件。 今天就给大家介绍一下怎么在 Mac 电脑中运行 Windows 版本的办公软件,在这里就需…

回归预测 | Matlab实现WOA-CNN-SVM鲸鱼算法优化卷积神经网络-支持向量机的多输入单输出回归预测

回归预测 | Matlab实现WOA-CNN-SVM鲸鱼算法优化卷积神经网络-支持向量机的多输入单输出回归预测 目录 回归预测 | Matlab实现WOA-CNN-SVM鲸鱼算法优化卷积神经网络-支持向量机的多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.WOA-CNN-SVM鲸鱼算法…

解决VSCode使用SSH远程连接时无法指定用户名的问题

Windows 11自带OpenSSH客户端,和VSCode配合得很好,没有这个问题。 今天要说的是旧版本Windows 7/8/10系统遇到的问题。 PS: Windows 7可以运行的最后版本是VSCode 1.80.2 由于Windows 7/8/10没有自带的OpenSSH客户端,但可以调用MSYS环境下的…

Ubuntu 使用 nginx 搭建 https 文件服务器

Ubuntu 使用 nginx 搭建 https 文件服务器 搭建步骤安装 nginx生成证书修改 config重启 nginx 搭建步骤 安装 nginx生成证书修改 config重启 nginx 安装 nginx apt 安装: sudo apt-get install nginx生成证书 使用 openssl 生成证书: 到对应的路径…

【已解决】PPT不能转换成PDF文档怎么办?

PPT可以转换成PDF文档,只需要点击PPT菜单页面中的【文件】选项,再点击【导出】即可转换,如果转换时发现【导出】选项不可选,无法完成转换怎么办?以下3种方法可以试试! 出现上面这种情况,我们可以…

<windows>win11输入法无法设置UI,变为了win10样子,解决方法

1 问题 升级win11版本后,输入法可能会变为旧版,如下图。如何恢复WIN11新版样子? 2 解决 点击开始–>设置–>搜索”语言“–>选择中文简体右侧语言选项。 下拉到最后选择微软拼音右侧三点,选择键盘选项–>选择常规…

硬件调试-电源纹波测量

硬件调试-电源纹波测量 Fang XS.1452512966qq.com如果有错误,希望被指出,学习技术的路难免会磕磕绊绊量的积累引起质的变化感谢酸奶大佬提供的硬件技术指导; 电源纹波 百度百科定义如下: 纹波是由于直流稳定电源的电压波动而造…

第五章 I/O管理 十三、固态硬盘SSD

目录 一、原理 二、组成 1、闪存翻译层: 2、存储介质: 三、读写性能特性 四、与机械硬盘相比的特点 五、磨损均衡技术 1、思想: 2、动态磨损均衡: 3、静态磨损均衡: 六、SSD的理想寿命 一、原理 基于闪存技术Flash Me…

windows docker desktop 更换镜像 加速

最近 docker hub 访问不了; 经过研究 可以通过添加 代理镜像网址 添加代理服务器的方式 实现完美访问 1添加镜像网站 修改成国内镜像地址就能享受到飞一般的速度,但有一个问题,部分站点镜像不全或者镜像比较老,建议使用多个镜像站。 https…

PyGame:Python 游戏编程入门

一、说明 当我在上个世纪末开始学习计算机编程时,我的愿望是编写计算机游戏。我试图弄清楚如何在我学到的每种语言和每个平台上编写游戏,包括 Python。这就是我发现pygame并学习如何使用它来编写游戏和其他图形程序的方式。当时,我真的很想要…

计算机网络 第六章应用层

文章目录 1 应用层功能概述2 网络应用模型:客户服务器(CS)3 网络应用模型:PeerToPeer(P2P)4 域名和域名系统5 常见域名解析服务器6 两种域名解析过程7 什么是FTP8 FTP的工作原理9 EMail的组成10 EMail系统的组成结构11 发邮件协议:SMTP12 多用…

Windows10安装Anaconda与Pytorch的记录

这是一篇关于安装Anaconda和Pytorch的记录与复盘,写的原因是我电脑恢复系统之后东西全没了,再装Pytorch的时候一脸懵逼忘了怎么弄了,写篇记录以备我下一次安装。 1、Anaconda的安装 1.1、Anaconda安装包下载 下载链接: Free Download | An…

应用出海新福祉,融云助IM社交迅速对齐海外用户体验

对于互联网业务而言,贴近年轻用户的创新是永恒的话题。近期,一种新的社交方式悄悄地在年轻人中流行开来,这就是“猫鼠游戏”。关注【融云全球互联网通信云】了解更多 玩法可以说是我们熟悉的“躲猫猫”游戏升级版,不同之处在于&a…

OpenSSL生成CA证书

基本概念 证书类别 根证书:生成服务端证书,客户端证书的基础。自签名。服务端证书:由根证书签发。配置在服务器上。客户端证书:由根证书签发。配置在浏览器、移动APP等客户端上。 认证方式 单向认证(Client鉴权Serv…

我的云栖大会之旅:见证云计算创新的15年

云栖大会,曾经是一次不可思议的科技之旅,却如今已见证了我对云计算世界的15年关注和发展。第一次踏上云栖大会之旅,我记得是在2009年。那时的云计算还是一个新生事物,而云栖大会正是其中的奠基石。 我清楚地记得那个炎热的夏天&am…

Redis--苍穹

一、Redis入门 1.1、Redis简介 1.2 、redis启动 redis-server redis.windows.conf 1.3、redis连接 -h 指定IP-p 指定端口-a 密码 redis-cli.exe -h localhost -p 6379 -a 731206 二、redis数据类型 2.1、redis的五种数据类型 2.2、redis的各种数据类型的特点 三、Redis的…