【JVM从入门到实战】(一) 字节码文件

news2024/12/23 18:00:56

一、什么是JVM

JVM 全称是 Java Virtual Machine,中文译名 Java虚拟机。
JVM 本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件。
在这里插入图片描述

二、JVM的功能

  1. 解释和运行
    对字节码文件中的指令,实时的解释成机器码,让计算机执行
  2. 内存管理
    自动为对象、方法等分配内存
    自动的垃圾回收机制,回收不再使用的对象
  3. 即时编译
    对热点代码进行优化,提升执行效率。
  • Java语言如果不做任何优化,性能不如C、C++等语言。即时编译大大提高了Java程序的运行效率
    在这里插入图片描述
  • Java需要实时解释,主要是为了支持跨平台特性。
    在这里插入图片描述
  • 由于JVM需要实时解释虚拟机指令,不做任何优化性能不如直接运行机器码的C、C++等语言。JVM提供了即时编译(Just-In-Time 简称JIT) 进行性能的优化,最终能达到接近C、C++语言的运行性能,甚至在特定场景下实现超越。
    在这里插入图片描述

三、常见的JVM

在这里插入图片描述

Java虚拟机规范

《Java虚拟机规范》由Oracle制定,内容主要包含了Java虚拟机在设计和实现时需要遵守的规范,主
要包含class字节码文件的定义、类和接口的加载和初始化、指令集等内容。
《Java虚拟机规范》是对虚拟机设计的要求,而不是对Java设计的要求,也就是说虚拟机可以运行在
其他的语言比如Groovy、Scala生成的class字节码文件之上。
官网地址:https://docs.oracle.com/javase/specs/index.html

HotSpot的发展历程

在这里插入图片描述

四、总结

  1. JVM到底是什么?
    JVM 全称是 Java Virtual Machine,中文译名 Java虚拟机,是一个运行在计算机上的程序,他的职责是运行Java字节码文件。
  2. JVM的三大核心功能是什么?
    JVM 包含内存管理、解释执行虚拟机指令、即时编译三大功能。
  3. 常见的JVM虚拟机有哪些?
    常见的JVM有HotSpot、GraalVM、OpenJ9等,另外DragonWell龙井JDK也提供了一款功能增强版的JVM。其中使用最广泛的是HotSpot虚拟机。

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

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

相关文章

图论——二分图

图论——二分图 二分图通俗解释 有一个图,将顶点分成两类,边只存在不同类顶点之间,同类顶点之间设有边。称图 G 为二部图,或称二分图,也称欧图。 性质 二分图不含有奇数环图中没有奇数环,一定可以转换为二…

005、Softmax损失

之——softmax与交叉熵 杂谈 我们常用到softmax函数与交叉熵的结合作为损失函数以监督学习,这里做一个小小的总结。 正文 1.softmax的基本改进 所谓softmax就是在对接全连接层输出时候把输出概率归一化,最基础的就是这样: 效果就是这样&…

图文教程:stable-diffusion的基本使用教程 txt2img(多图)

之前我介绍了SD的安装过程,那么这篇将介绍怎么使用SD 使用模型 SD安装好之后,我们只有一个默认的模型。这个模型很难满足我们的绘图需求,那么有2种方法。 1是自己训练一个模型(有门槛)2是去网站上找一个别人练好的模…

算法通关村第四关—表达式问题(黄金)

表达式问题 一、计算器问题 计算器也是非常常见的问题,我们看一个中等问题。LeetCode227.给你一个字符串表达式s,请你实现一个基本计算器来计算并返回它的值。整数除法仅保留整数部分。  你可以假设给定的表达式总是有效的。所有中间结果将在[-231,231…

关于Anaconda的安装和环境部署(此章专为新手制定)

目录 Anaconda简介 一、软件下载(地址👇) 2:点击下载 3:版本选择: 4:Anaconda的安装包就下载完成了 2:恭喜你,看到这里已经完成安装了 三、部署环境 1&#xff1…

Vue 双向绑定:让数据与视图互动的魔法!(下)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

Wireshark中的http协议包分析

Wireshark可以跟踪网络协议的通讯过程,本节通过http协议,在了解Wireshark使用的基础上,重温http协议的通讯过程。 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于 字节流…

FastAPI之响应模型

前言 响应模型我认为最主要的作用就是在自动化文档的显示时,可以直接给查看文档的小伙伴显示返回的数据格式。对于后端开发的伙伴来说,其编码的实际意义不大,但是为了可以不用再额外的提供文档,我们只需要添加一个 response_mod…

scala变量与变量类型

1.6 变量与类型(重点)1.6.1 变量推断1.6.2 多变量定义1.6.3 var和val的区别 1.6.3.1 是否可变 1.6.3.2 延迟加载 1.6 变量与类型(重点) val修饰的变量,相当于Java中final修饰的变量; // 定义常量s1,使用…

11.进制转换:十进制转二进制【2023.12.3】

1.问题描述 计算机底层原理中常使用二进制来表示相关机器码,学会将十进制数转换成二进制数是一个非常重要的技能。现在编写一个程序,输入一个十进制数,将其转换成二进制数。 2.解决思路 使用内置函数bin()将十进制数转换为二进制数 3.代码…

FreeRTOS的三处栈空间设置分析

1、汇编启动代码中设置栈 这个栈空间只有300字节,是用于汇编启动代码早期,以及调用C语言的main函数(创建任务等)在创建好任务,启动调取器后,这个栈空间就被抛弃掉,后续不会使用到等调度器开启后…

问卷调查:如何防止随意作答以提高数据质量

在进行问卷调查的时候,我们经常要面临一个问题——答题者随意作答。这往往会导致我们收集的问卷数据不准确,影响问卷的最终结论。所以,我们要开展问卷调查的过程中,要运用一些合理的方法和技巧,避免这种情况发生。问卷…

频率、概率

频率 在相同的条件下进行试验,假设试验进行了次,其中随机事件A发生了次,那么就称为随机事件A发生的频率。 概率 假设随机试验E的样本空间是S,对于其中每个随机事件,都对应了一个实数,把这个实数称为随机…

1842_emacs使用company-irony实现C语言的自动补全

Grey 全部学习内容汇总:GitHub - GreyZhang/editors_skills: Summary for some common editor skills I used. 1842_emacs使用company-irony实现c语言的自动补全 irony-mode是一个自动补全的实现方案,配合company集成之后效果非常好。简单调试完了之后…

理解排序算法:冒泡排序、选择排序与归并排序

简介: 在计算机科学中,排序算法是基础且重要的概念。本文将介绍三种常见的排序方法:冒泡排序、选择排序和归并排序。我们将探讨它们的工作原理、特点和适用场景,以帮助读者更好地理解和选择合适的排序方法。 冒泡排序 冒泡排序是…

如何通过上下滑动实现亮度和音量调节(ArkUI)

场景说明 在音视频应用中通常可以通过上下滑动来调节屏幕亮度和音量大小,本例即为大家介绍如何实现上述UI效果。 说明: 由于当前亮度和音量调节功能仅对系统应用开发,所以本例仅讲解UI效果的实现。 效果呈现 本例效果如下: 当在…

Python 进阶(十五):Base64 编码和解码(base64 模块)

大家好,我是水滴~~ 本篇文章主要介绍Python的base64模块,主要内容有:Base64的概念、base64模块、base64编码和解码、以及其使用场景。文章中包含大量的示例代码,希望能够帮助新手同学快速入门。 《Python入门核心技术》专栏总目录…

SpringBoot程序的打包与运行

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开心好久好久😎 📚系列专栏:Java全栈,…

什么是接口与API接口!

今天有个朋友问我什么接口?你们平时都说在写接口,写的是什么鬼啊?我一开始就想,咦小陈同学怎么突然了解编程接口了,不过听到他后一个提问我知道原来他想的是API接口,不过被我主观意识习惯想成了编程定义上的…

HCIA-H12-811题目解析(7)

1、【多选题】RSTP协议包含以下哪些端口状态? 2、【单选题】当采用LACP模式进行链路聚合时华为交换机的默认系统优先级是? 3、【单选题】下面关于二层以太网交换机的描述说法不正确的是? 4、【单选题】以下哪种类型的ACL不能匹配网络层信息…