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

JVM 概述

JVM概述

image-20240528220016247

JVM的全为 Java Virtual Machine,但是目前的 JVM 已经不再与任何语言进行深度耦合了,其本质就是运行在计算机上的程序,职责是运行处理 Java 字节码文件。

JVM 功能

解释和运行

JVM 会对字节码文件中的指令,实时的解释为机器码,在计算机上执行。

内存管理

  1. JVM 会自动为对象、方法等分配内存。
  2. JVM 的自动垃圾回收机制,会及时回收不再使用的对象,减少内存不必要的占用。

即时编译(JIT:Just In Time)

JVM 会对热点代码进行优化,可以大大提升 Java 代码的执行效率。

因为 Java 语言为了支持跨平台特性,需要进行实时解释。

image-20240528220934811

一份同样的字节码文件,在Windows、Linux等不同的操作系统,会根据其环境的JDK,将字节码解释成该系统能够执行的机器码,然后才会交给底层的操作系统去执行。正因如此,如果 Java 不做任何处理,其性能不如 C、C++ 等语言。

image-20240528221323212

为了解决这个问题,Java 会将热点代码字节码指令(即会被多次执行的代码片段),将其解释优化成机器码之后先保存在内存中一份,等到下一次执行的时候,就直接从内存中取出已经编译好的机器码直接使用,这样就会大大提高效率。

常见的JVM

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

JVM 的组成

image-20240529111251563
  • 类加载器:加载 class 字节码文件中的内容到内存中。
  • 运行时数据区:负责管理 JVM 使用到的内存,例如创建对象和销毁对象时的内存管理。
  • 执行引擎:将字节码文件中的指令解释为机器码,同时使用即时编译器优化性能。
  • 本地接口:JVM 有的采用 C/C++ 语言进行编写,所以需要调用本地提供的已经编译的方法,这些方法并不存在于字节码文件中。
http://www.dtcms.com/a/134243.html

相关文章:

  • 基于Java,SpringBoot,Vue,HTML家政服务预约系统设计
  • C语言学习之两个数值交换的算法
  • SOME/IP中”客户端消费“及”服务端提供”的解析
  • MCP 集合网站
  • Kotlin集合操作陷阱与突围:如何优雅地边遍历边修改MutableList
  • TestNG 单元测试详解
  • Spring Boot循环依赖全解析:原理、解决方案与最佳实践
  • DDS波形发生器仿真及技术原理
  • rabbitmq引入C++详细步骤
  • Go之Slice和数组:深入理解底层设计与最佳实践
  • 边缘计算场景下的模型轻量化:TensorRT部署YOLOv7的端到端优化指南
  • 云原生周刊:K8s 中的 GPU 共享
  • 【Pandas】pandas DataFrame iterrows
  • WPF 中的元素继承层次结构 ,以下是对图中内容的详细说明:
  • 若依RBAC权限控制SpringSecurity(自用)
  • WPF GDI 画 晶圆Mapping图
  • CSS 美化页面(三)
  • MegaTTS3: 下一代高效语音合成技术,重塑AI语音的自然与个性化
  • 浏览器运行Pytorch无法启用显卡
  • poll为什么使用poll_list链表结构而不是数组 - 深入内核源码分析
  • Java文件批量复制工具实现解析
  • 【npm install 一直转圈的问题】
  • 力扣HOT100——560.和为k的子数组
  • Kaggle竞赛——商店销售时序预测(Store Sales)
  • ROS---<angles>
  • 分布式锁+秒杀异步优化
  • 从零开始:Python运行环境之VSCode与Anaconda安装配置全攻略 (1)
  • 4.vtk光照vtkLight
  • 使用Python爬取豆瓣电影Top250并保存到Excel完整教程
  • 测试基础笔记第四天(html)