Java虚拟机面试题:引言

发布于:2025-04-03 ⋅ 阅读:(14) ⋅ 点赞:(0)

🧑 博主简介: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)。