还剩14页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
jvm面试试题及答案
一、单项选择题(共30题,每题1分)(以下题目均为常见JVM面试高频考点,答案唯一)
1.JVM中,下列哪项不是内存区域划分的一部分?()A.堆B.方法区C.数据区D.虚拟机栈
2.垃圾收集算法中,标记-清除算法的主要缺点是?()A.产生内存碎片B.回收效率低C.不适合大对象D.仅适用于新生代
3.类加载过程中,哪一步负责将类的二进制数据读入内存,并为之创建对应的Class对象?()A.加载B.验证C.准备D.初始化
4.JVM参数中,用于设置新生代大小的是?()A.-XmsB.-XmxC.-XmnD.-XX:NewRatio
5.下列哪项是JVM的执行引擎核心组件?()第1页共16页A.类加载器B.运行时数据区C.解释器/即时编译器D.本地方法接口
6.永久代(PermGen)与元空间(Metaspace)的主要区别是?()A.元空间使用本地内存,永久代使用JVM内存B.元空间大小固定,永久代可动态扩展C.元空间仅存储类元数据,永久代仅存储实例数据D.元空间属于堆内存,永久代不属于
7.垃圾收集器中,哪一款适用于单CPU环境,且停顿时间极短?()A.SerialGCB.ParallelGCC.CMSD.G
18.JVM中,对象头的组成不包括?()A.Mark WordB.类型指针C.实例数据D.对齐填充
9.下列哪项不是JVM的垃圾收集算法?()A.标记-清除B.标记-复制C.标记-整理D.标记-压缩第2页共16页
10.类加载器中,负责加载Java核心类库(如rt.jar)的是?()A.启动类加载器(Bootstrap ClassLoader)B.扩展类加载器(Extension ClassLoader)C.应用程序类加载器(Application ClassLoader)D.自定义类加载器
11.JVM中,哪个区域的内存溢出不会抛出StackOverflowError?()A.虚拟机栈B.本地方法栈C.堆D.方法区
12.新生代中,Eden区与Survivor区的默认比例是?()A.1:1B.2:1C.3:1D.8:
113.下列哪项是JVM的双亲委派模型的作用?()A.提高类加载效率B.避免类重复加载,保证类的安全性C.加速垃圾回收D.优化内存分配
14.垃圾收集器中,CMS的初始标记阶段的停顿主要针对哪个区域?()A.新生代B.老年代第3页共16页C.永久代/元空间D.整个堆
15.JVM参数中,用于设置堆内存最小值的是?()A.-XmsB.-XmxC.-XX:NewSizeD.-XX:MaxNewSize
16.下列哪种情况下,对象会被判定为可回收对象?()A.仅被一个强引用指向B.被强引用和软引用指向C.被弱引用指向且无其他强引用D.被虚引用指向
17.JVM中,安全点(Safepoint)的作用是?()A.标记垃圾回收的起始位置B.确保线程在该点停顿,便于GC执行C.优化类加载速度D.加速对象创建
18.永久代/元空间中存储的信息不包括?()A.类的元数据(方法、字段等)B.常量池C.静态变量D.实例对象
19.垃圾收集器中,G1收集器的Mixed GC阶段是指?()A.仅回收新生代B.仅回收老年代第4页共16页C.回收新生代和部分老年代D.回收整个堆
20.JVM中,哪个区域是线程私有的?()A.堆B.方法区C.虚拟机栈D.常量池
21.下列哪项是JVM的即时编译(JIT)的主要作用?()A.将字节码转换为机器码B.加速类加载C.优化垃圾回收算法D.减少内存占用
22.新生代中,当Survivor区不足时,对象会直接进入哪个区域?()A.老年代B.永久代/元空间C.Eden区D.直接内存
23.类加载过程中,哪一步负责为类的静态变量分配内存并设置默认值?()A.加载B.验证C.准备D.初始化
24.JVM参数中,用于启用CMS收集器的是?()第5页共16页A.-XX:+UseSerialGCB.-XX:+UseParallelGCC.-XX:+UseConcMarkSweepGCD.-XX:+UseG1GC
25.下列哪项不是JVM的内存管理机制?()A.自动内存分配B.自动垃圾回收C.手动内存释放D.内存泄漏检测
26.垃圾收集器中,SerialGC的特点是?()A.单线程收集,停顿时间长B.多线程收集,停顿时间短C.并发收集,无停顿D.分代收集,效率高
27.JVM中,逃逸分析的主要作用是?()A.优化对象内存分配B.加速类加载C.减少GC次数D.提高CPU利用率
28.永久代与元空间的默认大小限制分别是?()A.永久代默认64M,元空间无限制B.永久代无限制,元空间默认64MC.两者默认均为64MD.两者均无限制
29.下列哪项是JVM的内存屏障作用?()第6页共16页A.优化内存读写速度B.保证多线程内存可见性和有序性C.加速垃圾回收D.优化类加载
30.垃圾收集器中,ZGC收集器的最大特点是?()A.停顿时间极短(毫秒级)B.仅适用于64位系统C.必须使用G1作为基础D.仅回收新生代
二、多项选择题(共20题,每题2分)(以下题目均为JVM核心知识点组合,答案多选,错选、漏选不得分)
1.下列哪些属于JVM内存区域划分的部分?()A.堆B.虚拟机栈C.本地方法栈D.直接内存E.方法区
2.垃圾收集算法包括?()A.标记-清除B.标记-复制C.标记-整理D.分代收集E.增量收集
3.类加载器的双亲委派模型的层次包括?()第7页共16页A.启动类加载器B.扩展类加载器C.应用程序类加载器D.自定义类加载器E.系统类加载器
4.JVM垃圾收集器中,属于并发收集器的有?()A.SerialGCB.ParallelGCC.CMSD.G1E.ZGC
5.下列关于堆内存的描述,正确的有?()A.线程共享区域B.存储对象实例C.新生代和老年代组成D.内存溢出会抛出OutOfMemoryErrorE.永久代/元空间属于堆的一部分
6.类加载过程中的验证阶段包括哪些内容?()A.文件格式验证B.元数据验证C.字节码验证D.符号引用验证E.初始化验证
7.JVM参数中,与堆内存相关的有?()A.-Xms第8页共16页B.-XmxC.-XmnD.-XX:NewRatioE.-XX:SurvivorRatio
8.对象在JVM中的生命周期包括?()A.创建B.使用C.不可达D.收集E.卸载
9.新生代的三个区域包括?()A.EdenB.From SurvivorC.To SurvivorD.OldE.Permanent
10.下列哪些属于JVM的执行引擎组件?()A.解释器B.即时编译器(JIT)C.垃圾收集器D.本地方法接口(JNI)E.类加载器
11.永久代/元空间与方法区的关系是?()A.元空间是永久代的替代B.方法区是JVM规范定义的内存区域第9页共16页C.永久代是方法区的实现之一D.元空间是方法区的实现之一E.两者完全无关
12.垃圾收集器中,会导致Stop TheWorld停顿的有?()A.SerialGCB.ParallelGCC.CMSD.G1E.ZGC
13.JVM的内存模型(JMM)主要解决的问题包括?()A.线程间内存可见性B.指令重排序C.锁的释放与获取D.内存屏障E.垃圾回收
14.下列关于强引用、软引用、弱引用和虚引用的描述,正确的有?()A.强引用指向的对象不会被回收B.软引用指向的对象在内存不足时被回收C.弱引用指向的对象在GC时被回收D.虚引用必须配合引用队列使用E.所有引用类型的对象都可被回收
15.JVM参数中,与GC相关的有?()A.-XX:+UseSerialGCB.-XX:+PrintGCDetails第10页共16页C.-XX:NewRatio=2D.-Xms512m-Xmx1gE.-XX:SurvivorRatio=
816.下列哪些属于JVM的JIT优化技术?()A.方法内联B.循环展开C.逃逸分析D.常量折叠E.垃圾回收
17.新生代垃圾回收(Minor GC)的触发条件包括?()A.Eden区空间不足B.Survivor区空间不足C.对象大小超过Survivor区容量D.老年代空间不足E.显式调用System.gc
18.类加载器的作用包括?()A.加载类的二进制数据B.验证类的安全性C.创建Class对象D.连接类的各个阶段E.初始化类的静态成员
19.下列关于JVM调优的描述,正确的有?()A.调优目标是减少GC停顿时间B.新生代大小设置需结合对象生命周期C.老年代过大可能导致频繁Full GC第11页共16页D.G1收集器的停顿时间可控E.调优应基于实际性能监控数据
20.JVM中,内存泄漏可能导致的问题包括?()A.堆内存溢出B.老年代空间不足C.Full GC频繁D.系统响应变慢E.线程死锁
三、判断题(共20题,每题1分)(以下题目描述正确的打√,错误的打×)
1.JVM内存区域中,堆是线程共享的,且是垃圾回收的主要区域()
2.永久代属于堆内存的一部分,用于存储类的元数据和常量池()
3.新生代中,Eden区对象在每次Minor GC后存活的,会进入Survivor区,且年龄+1()
4.System.gc方法一定会触发Full GC,且会立即执行()
5.类加载器的双亲委派模型可以避免类的重复加载,提高安全性()
6.G1收集器是分代收集器,必须配合新生代和老年代的划分()
7.JVM中,虚拟机栈是线程私有的,每个线程创建时会分配一个虚拟机栈()
8.元空间与永久代的最大区别是元空间使用本地内存,而永久代使用JVM内存()
9.垃圾收集算法中的标记-整理算法不会产生内存碎片()第12页共16页
10.新生代中,To Survivor区在Minor GC后始终为空()
11.JVM的即时编译器(JIT)只能优化热点代码,对非热点代码不处理()
12.堆内存溢出时,JVM会抛出OutOfMemoryError:Java heapspace()
13.弱引用指向的对象在GC时一定会被回收,无论内存是否充足()
14.CMS收集器的并发清除阶段会与用户线程并发执行,无停顿()
15.JVM参数-Xmx1024m表示设置堆内存最大值为1024MB()
16.类加载的初始化阶段是执行类构造器方法的过程()
17.逃逸分析可以将对象分配在栈上,减少GC压力()
18.JVM中,所有线程共享的内存区域包括堆和方法区()
19.垃圾收集器ParallelGC是多线程收集器,适用于单CPU环境()
20.ZGC收集器是目前停顿时间最短(亚毫秒级)的收集器之一()
四、简答题(共2题,每题5分)
1.简述JVM内存模型中各区域的作用及特点
2.说明垃圾回收的主要算法及其适用场景附标准答案
一、单项选择题1-5:CAACC6-10:AACDA11-15:CDBCC第13页共16页16-20:CBCCA21-25:AAACC26-30:AAABA
二、多项选择题1:ABCE2:ABC3:ABCD4:CDE5:ABCD6:ABCD7:ABCDE8:ABCDE9:ABC10:ABD11:ABCD12:AB13:ABCD14:ABCD15:AB16:ABCD17:AC18:ABCDE19:ABCDE20:ABCD
三、判断题第14页共16页1:√2:×(永久代不属于堆,元空间才是方法区的实现)3:√4:×(System.gc仅建议GC,不保证立即执行和Full GC)5:√6:√7:√8:√9:√10:×(To Survivor区在Minor GC后可能存储存活对象)11:√12:√13:√14:×(CMS在并发清除阶段仍有短暂停顿)15:√16:√17:√18:√19:×(ParallelGC适用于多CPU环境)20:√
四、简答题JVM内存模型各区域作用及特点堆线程共享,存储对象实例,GC主要区域;特点是非结构化内存,动态扩展,溢出会抛OOM第15页共16页虚拟机栈线程私有,存储方法栈帧(局部变量、操作数栈等);特点是栈深度不足抛StackOverflowError方法区线程共享,存储类元数据、常量池等;永久代/元空间是其实现,元空间使用本地内存,无固定大小程序计数器线程私有,记录当前指令地址;特点是唯一无OOM风险的区域垃圾回收主要算法及适用场景标记-清除优点是无需移动对象;缺点是产生内存碎片,适用于老年代大对象回收标记-复制优点是无碎片;缺点是内存利用率低(50%),适用于新生代Survivor区标记-整理优点是无碎片且内存利用率高;缺点是需移动对象,适用于老年代大对象分代收集结合对象生命周期(新生代用标记复制,老年代用标记整理/清除),是G
1、CMS的基础第16页共16页。
个人认证
优秀文档
获得点赞 0