【Java面试题】JVM篇(包含个人心得)

本文详细介绍了JavaVirtualMachine(JVM)的作用、组成,包括类加载器的分类、运行时数据区(方法区、堆、栈、本地方法栈和程序计数器)、执行引擎(解释器和即时编译器)以及垃圾回收机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JVM知识点汇总

JVM(Java Virtual Machine)是Java虚拟机的缩写,它是Java程序运行的基础。下面是JVM的一些重要知识点总汇:

  1. JVM的作用:JVM是Java程序的运行环境,它负责将Java字节码文件解释或者编译成机器码,并在操作系统上执行。

  2. JVM的组成:JVM由三个主要的子系统组成:类加载器(ClassLoader)、运行时数据区(Runtime Data Area)和执行引擎(Execution Engine)。

  3. 类加载器:类加载器负责将Java字节码文件加载到内存中,并生成对应的Class对象。JVM中有三种类加载器:启动类加载器(Bootstrap ClassLoader)、扩展类加载器(Extension ClassLoader)和应用程序类加载器(Application ClassLoader)。

  4. 运行时数据区:运行时数据区是JVM用来存储程序运行时数据的区域。主要包括方法区、堆、栈、本地方法栈和程序计数器。

  5. 方法区:方法区用于存储类的结构信息,如类的字段、方法、常量池等。在JDK8及之前,方法区是永久代(Permanent Generation)的一部分,而在JDK8之后,方法区被移除,取而代之的是元空间(Metaspace)。

  6. 堆:堆是用于存储对象实例的区域。所有通过new关键字创建的对象都会被分配到堆上。堆可以分为新生代(Young Generation)和老年代(Old Generation)。

  7. 栈:栈用于存储方法的调用和局部变量。每个线程在运行时都会有一个独立的栈,栈中的数据是线程私有的。

  8. 本地方法栈:本地方法栈用于存储本地方法(Native Method)的调用和参数。

  9. 程序计数器:程序计数器用于记录当前线程执行的字节码指令地址。

  10. 执行引擎:执行引擎负责解释或者编译字节码,并执行相应的机器码。JVM中有两种执行引擎:解释器(Interpreter)和即时编译器(Just-In-Time Compiler,JIT)。

  11. 垃圾回收:JVM通过垃圾回收机制自动管理内存。垃圾回收器负责回收不再使用的对象,并释放内存空间。

  12. JIT编译器:即时编译器将热点代码(HotSpot)编译成机器码,以提高程序的执行效率。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值