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

Java虚拟机面试题:引言

🧑 博主简介:CSDN博客专家历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程高并发设计Springboot和微服务,熟悉LinuxESXI虚拟化以及云原生Docker和K8s,热衷于探索科技的边界,并将理论知识转化为实际应用。保持对新技术的好奇心,乐于分享所学,希望通过我的实践经历和见解,启发他人的创新思维。在这里,我希望能与志同道合的朋友交流探讨,共同进步,一起在技术的世界里不断学习成长。
技术合作请加本人wx(注明来自csdn):foreast_sea

在这里插入图片描述


在这里插入图片描述

Java虚拟机面试题:引言

1. 什么是 JVM?

JVM,也就是 Java 虚拟机,它是 Java 实现跨平台的基石。

Java 程序运行的时候,编译器会将 Java 源代码(.java)编译成平台无关的 Java 字节码文件(.class),接下来对应平台的 JVM 会对字节码文件进行解释,翻译成对应平台的机器指令并运行。

在这里插入图片描述

也就实现了 Java 一次编译,处处运行的跨平台性。

1.1 说说 JVM 的其他特性?

①、垃圾回收:JVM 可以自动管理内存,通过垃圾回收机制(Garbage Collection)释放不再使用的对象所占用的内存。

②、JIT:JVM 包含一个即时编译器(JIT Compiler),它在运行时将热点代码缓存到 codeCache 中,下次执行的时候不用再一行一行解释,而是直接执行缓存后的机器码,执行效率会提高很多。

截图来自美团技术

③、多语言支持:任何可以通过 Java 编译的语言,比如说 Groovy、Kotlin、Scala 等,都可以在 JVM 上运行。

在这里插入图片描述

1.2 为什么要学习 JVM?

学习 JVM 可以帮助我们更好地优化程序性能、避免内存问题。

首先,了解 JVM 的内存模型和垃圾回收机制,可以帮助我们合理配置内存、减少 GC 停顿。

此外,掌握 JVM 的类加载机制可以帮助排查类加载冲突或异常。

JVM 还提供了很多调试和监控工具,比如使用 jmap 和 jstat 可以分析内存和线程的使用情况。

2. 说说 JVM 的组织架构

JVM 大致可以划分为三个部分:类加载器运行时数据区执行引擎

截图来源于网络

类加载器

负责从文件系统、网络或其他来源加载 Class 文件,将 Class 文件中的二进制数据读入到内存当中。

运行时数据区

JVM 在执行 Java 程序时,需要在内存中分配空间来处理各种数据,这些内存区域主要包括方法区、堆、栈、程序计数器和本地方法栈。

执行引擎

执行引擎是 JVM 的心脏,负责执行字节码。它包括一个虚拟处理器,还包括即时编译器JIT Compiler)和垃圾回收器Garbage Collector)。

http://www.dtcms.com/a/106483.html

相关文章:

  • 【Zabbix技术系列文章】第⑥篇——Zabbix 高级运维与优化
  • leetcode118.杨辉三角
  • Unity注册表修改分辨率:探索幕后设置与手动调控
  • 学习笔记—数据结构—排序
  • 第十二节课:Python语言程序设计和前阶段复盘总结
  • 数字孪生技术解析:开启虚拟与现实融合新时代
  • 界面架构 - 主流架构(Qt)
  • 动态取消Spring Boot通过注解@EnableScheduling启动的定时任务
  • MySQL(1)
  • 【图像处理基石】什么是RAW格式?
  • React DndKit 实现类似slack 类别、频道拖动调整位置功能
  • # BERT架构及详解
  • C# 中实现不同程序进程间消息交互
  • 【Linux网络#18】:深入理解select多路转接:传统I/O复用的基石
  • ETCD --- lock详解
  • JAVASE(十五)正则表达式
  • 2024年最新版零基础详细Java知识笔记【反射】⑩
  • Python实现 MCP 客户端调用(高德地图 MCP 服务)查询天气工具示例
  • Linux系统
  • Oracle 23ai Vector Search 系列之3 集成嵌入生成模型(Embedding Model)到数据库示例,以及常见错误
  • 16变量命名风格
  • windows部署docker
  • electron-update + nginx热更新
  • 【深度学习:进阶篇】--2.1.多分类与TensorFlow
  • 2025 年山东危化品经营单位考试攻略分享​
  • 二分查找与二叉树中序遍历——面试算法
  • OpenCV单窗口显示多图片
  • MySQL分组的时候遇到ONLY_FULL_GROUP_BY报错和解决
  • html+css+javaScript实现一个扫雷游戏
  • MATLAB 代码学习