首页 > 其他分享 >初识JVM​-JVM基础概念

初识JVM​-JVM基础概念

时间:2024-01-08 23:03:19浏览次数:40  
标签:Java 字节 虚拟机 HotSpot 概念 初识 JVM 运行

什么是JVM

JVM全称是Java Virtual Machine,中文译名Java虚拟机。

初识JVM​-JVM基础概念_Java



JVM的功能

01解释和运行

对字节码文件中的指令,实时的解释成机器码,让计算机执行。

02内存管理

  • 自动为对象、方法等分配内存
  • 自动的垃圾回收机制,回收不再使用的对象

03即时编译

对热点代码进行优化,提升执行效率。

Java语言如果不做任何优化,性能不如C、C++等语言。Java需要实时解释,主要是为了支持跨平台特性。

初识JVM​-JVM基础概念_JVM_02


JVM提供了即时编译(Just-In-Time简称JIT)进行性能的优化,最终能达到接近C、C++语言的运行性能甚至在特定场景下实现超越。

初识JVM​-JVM基础概念_Java_03



常见的JVM

初识JVM​-JVM基础概念_JVM_04



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


常见的JVM-HotSpot的发展历程

初识JVM​-JVM基础概念_字节码_05



小结

1、JVM到底是什么?

JVM全称是Java Virtual Machine,中文译名Java虚拟机,是一个运行在计算机上的程序,他的职责是运行Java字节码文件。

2、JVM的三大核心功能是什么?

JVM包含内存管理、解释执行虚拟机指令、即时编译三大功能。

3、常见的JVM虚拟机有哪些?

常见的JVM有HotSpot、GraalVM、OpenJ9等,另外DragonWell龙井JDK也提供了一款功能增强版的JVM。其中使用最广泛的是HotSpot虚拟机。




标签:Java,字节,虚拟机,HotSpot,概念,初识,JVM,运行
From: https://blog.51cto.com/tangxiaohu/9151547

相关文章

  • 语义通信——概念与方法
    通信的三个层面的问题:层面A(技术问题):通讯符号如何准确地加以传输?层面B(语义问题):传输的符号如何精确地传达含义?层面C(效用问题):收到的含义如何以期望的方式有效地影响行为?语义通讯泛指不同的智能体之间进行的以“达意”为目的的通讯.这里的“智能体”可以指人类、智能机......
  • JVM3(内存区域)
    JVM内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区域【JAVA堆、方法区】、直接内存。线程私有数据区域生命周期与线程相同,依赖用户线程的启动/结束而创建/销毁(在HotspotVM内,每个线程都与操作系统的本地线程直接映射,因此这部分内存......
  • 深度学习的基本概念:从线性回归到卷积神经网络
    1.背景介绍深度学习是一种人工智能技术,它旨在模拟人类大脑中的神经网络,以解决复杂的问题。深度学习的核心思想是通过多层次的神经网络来学习数据的复杂关系,从而实现自主学习和决策。深度学习的发展历程可以分为以下几个阶段:1980年代:人工神经网络的基础研究,主要关注神经网络的结构和......
  • 排序算法之线性时间的排序和计数排序初识
    一:概述前面已经介绍了快速排序和堆排序。它们的时间复杂度都是O(nlogn)。在这篇博文中,要说明的是计数排序的初识和线性时间排序的介绍。二:具体说明<1>线性时间排序例如冒泡排序。如下图所示,因为8>3,所以8和3位置互换。例如堆排序。如下图所示,因为10>7,所以10和7位置交换。注意:有些特......
  • 一文搞定JVM字节码
    公众号《鲁大猿》,寻精品资料,帮你构建Java全栈知识体系 www.jiagoujishu.cn(架构技术.cn)多语言编译为字节码在JVM运行计算机是不能直接运行java代码的,必须要先运行java虚拟机,再由java虚拟机运行编译后的java代码。这个编译后的java代码,就是本文要介绍的java字节码。为什么jvm不能......
  • Python教程(20)——python面向对象编程基本概念
    面向对象(Object-oriented)是一种常用的程序设计思想,它以对象作为程序的基本单元,将数据和操作封装在一起,通过对象之间的交互来实现程序的功能。在面向对象编程中,将问题抽象成对象,而对象可以拥有属性(数据)和方法(操作)。对象可以被看作是现实世界中的实体或概念,具有某种特定的状态和行......
  • Exchange学习第一天:初识与安装
    Exchange,作为微软的企业级邮件服务器软件,在企业中扮演着至关重要的角色。今天,我开始了Exchange的学习之旅。一早,我首先了解了Exchange的基本概念和功能。Exchange不仅仅是一个邮件服务器,它还提供了联系人、日历、任务等协作工具,帮助企业提高工作效率。随后,我熟悉了Exchange的安装环......
  • JVM2(线程)
    (1)线程这里所说的线程指程序执行过程中的一个线程实体。JVM允许一个应用并发执行多个线程。HotspotJVM中的Java线程与原生操作系统线程有直接的映射关系。当线程本地存储、缓冲区分配、同步对象、栈、程序计数器等准备好以后,就会创建一个操作系统原生线程。Java线程结束,原......
  • 语义通信——概念与方法
    通信的三个层面的问题:层面A(技术问题):通讯符号如何准确地加以传输?层面B(语义问题):传输的符号如何精确地传达含义?层面C(效用问题):收到的含义如何以期望的方式有效地影响行为?语义通讯泛指不同的智能体之间进行的以“达意”为目的的通讯.这里的“智能体”可以指人类......
  • 如何为OpenHarmony贡献(8):包容性的语言(概念)-1
    如何在开源项目翻译中确保您的全球内容展示了对读者的尊重和保护其尊严?在翻译中遵循并使用包容性语言无疑是一个不错的做法。为什么包容性语言是必要的?为确保有效沟通,所有目标受众均应获得平等对待。这涉及以下概念:DI:多样性(Diversity)和包容性(Inclusivity)DEI:多样性(Diversity)、平......