(太全了)大厂面试题集锦:JVM面试题汇总及答案

本文详细介绍了JVM的工作原理,包括类的生命周期、垃圾回收机制、类加载过程以及内存溢出和内存泄漏的区别。重点讨论了JVM内存管理,特别是新生代与老年代的策略,以及常见的JVM调优策略,如调整新生代大小、设置对象进入老年代的年龄等。同时,提到了JVM调优工具如jconsole和jvisualvm的使用,并阐述了类加载器的委托、可见性和单一性原则。
摘要由CSDN通过智能技术生成

1.什么是 JVM?它有什么作用?

JVM 是 Java Virtual Machine(Java 虚拟机)的缩写,顾名思义它是一个虚拟计算机,也是 Java 程序能够实现跨平台的基础。它的作用是加载 Java 程序,把字节码翻译成机器码再交由 CPU 执行的一个虚拟计算器。

  1. 介绍一下类的生命周期

类的生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)共 7 个阶段(验证、准备、解析3个部分统称为连接)。其中,加载、验证、准备、初始化、卸载这5个阶段的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化完成后在开始,这是为了支持Java语言的运行时绑定。其中加载、验证、准备、解析及初始化是属于类加载机制中的步骤。

3.JVM的永久代中会发生垃圾回收么?

垃圾回收不会发生在永久代,如果永久代满了或者是超过了临界值,会触发完全垃圾回收(Full GC)。如果你仔细查看垃圾收集器的输出信息,就会发现永久代也是被回收的。这就是为什么正确的永久代大小对避免Full GC是非常重要的原因。请参考下Java8:从永久代到元数据区 (注:Java8中已经移除了永久代,新加了一个叫做元数据区的native内存区)。

4.Java类加载的过程是什么?

Java类加载需要经历一下几个过程:

(1) 加载:加载时类加载的第一个过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值