还剩8页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
jvm试题及答案文档说明本文整理了JVM(Java虚拟机)核心知识点的练习题及答案,涵盖单项选择、多项选择、判断及简答题,帮助学习者检验知识掌握程度,巩固JVM基础理论与实践应用能力内容基于Java官方规范及行业实践,适合Java初学者、面试备考者或技术人员参考
一、单项选择题(共30题,每题1分)(以下每题均只有一个正确选项,将正确选项的字母填在括号内)JVM中,线程私有且生命周期与线程相同的内存区域是?()A.堆B.方法区C.虚拟机栈D.本地方法栈下列哪项属于JVM运行时数据区中的“线程共享”区域?()A.PC寄存器B.虚拟机栈C.堆D.本地方法栈类加载过程中,下列哪个阶段负责将字节码文件加载到内存并存储为方法区的数据结构?()A.加载B.验证C.准备D.初始化JVM中的“双亲委派模型”是指类加载器按什么顺序加载类?()A.自底向上,从AppClassLoader到BootstrapClassLoaderB.自顶向下,从BootstrapClassLoader到AppClassLoaderC.自底向上,从ExtClassLoader到BootstrapClassLoaderD.自顶向下,从AppClassLoader到BootstrapClassLoader以下哪种情况会触发JVM的类加载过程中的“初始化”阶段?()A.类的静态成员变量被访问时B.类被加载到内存时C.类被验证通过后D.类被准备阶段完成后第1页共10页堆内存中,哪个区域是垃圾收集的主要目标?()A.Eden区B.From Survivor区C.To Survivor区D.Old区下列垃圾收集算法中,不会产生内存碎片的是?()A.标记-清除算法B.标记-复制算法C.标记-整理算法D.分代收集算法JVM参数-Xms的作用是?()A.设置新生代大小B.设置老年代大小C.设置堆内存初始大小D.设置永久代大小下列哪种引用类型在JVM内存不足时会被优先回收?()A.强引用B.软引用C.弱引用D.虚引用JVM中,“即时编译器(JIT)”的主要作用是?()A.将字节码转换为机器码B.垃圾收集C.类加载验证D.内存分配下列哪项是JVM中“程序计数器”的作用?()A.存储对象实例数据B.记录当前线程执行的指令地址C.存储类的元数据D.处理本地方法调用方法区在JDK8中被哪个区域替代?()A.永久代(PermGen)B.元空间(Metaspace)C.堆内存D.本地方法栈类加载时,若子类与父类同名但不同包,且子类主动使用父类,会触发父类的哪个阶段?()A.加载B.验证C.准备D.初始化下列垃圾收集器中,适合单线程环境的是?()A.SerialGC B.ParallelGC C.CMS D.G1JVM参数-XX:+UseGCLogFileRotation的作用是?()第2页共10页A.启用GC日志B.限制GC日志文件大小C.循环滚动GC日志文件D.关闭GC日志下列哪项不属于JVM内存溢出(OOM)的常见原因?()A.堆内存不足B.方法区溢出C.栈溢出D.JIT编译错误类加载过程中,“验证”阶段的主要目的是?()A.确保类的信息符合JVM规范B.将字节码加载到内存C.给类的静态变量赋初始值D.执行类的静态代码块下列关于“可达性分析”算法的描述,正确的是?()A.标记所有可访问的对象B.标记所有不可访问的对象C.从GC Roots出发,标记所有不可达对象D.从GC Roots出发,标记所有可达对象JVM中,“安全点(Safepoint)”的作用是?()A.标记垃圾回收的安全区域B.线程在该点暂停执行进行GCC.编译优化的触发点D.内存分配的位置下列哪种情况会导致类加载器打破双亲委派模型?()A.自定义类加载器重写loadClass方法B.系统类加载器加载自定义类C.启动类加载器加载用户自定义类D.扩展类加载器加载系统类堆内存中,-Xmx参数的作用是?()A.设置堆内存初始大小B.设置堆内存最大大小C.设置新生代大小D.设置老年代大小下列垃圾收集器中,属于“并发标记-清除(CMS)”的特点是?()A.停顿时间短B.无内存碎片第3页共10页C.回收过程不暂停用户线程D.适合大堆内存JVM中,“垃圾收集的三色标记法”中,“黑色对象”表示?()A.对象已被标记为可回收B.对象已被标记为存活且其引用的对象也已处理C.对象被标记为存活但引用的对象未处理D.对象未被标记类加载时,若类中存在静态变量,其初始值赋值发生在哪个阶段?()A.加载B.验证C.准备D.初始化下列哪项是JVM参数-XX:NewRatio=2的含义?()A.新生代:老年代=1:2B.新生代:老年代=2:1C.新生代:老年代=1:1D.新生代:老年代=3:1下列关于“指令重排序”的描述,正确的是?()A.JVM会随意调整指令执行顺序以提高效率B.指令重排序仅在单线程环境下发生C.指令重排序不会改变程序的最终结果D.指令重排序是JVM的错误行为JVM中,“JIT编译优化”通常不包括以下哪项?()A.方法内联B.循环展开C.数组边界检查消除D.垃圾收集下列哪种情况会导致线程“栈溢出”(StackOverflowError)?()A.堆内存中创建大量对象B.方法区溢出C.单个线程递归调用过深D.类加载失败JVM参数-XX:+UseG1GC的作用是?()A.启用G1垃圾收集器B.禁用G1垃圾收集器C.设置G1新生代大小D.设置G1老年代大小下列关于“元空间(Metaspace)”的描述,正确的是?()第4页共10页A.元空间是JDK7引入的内存区域B.元空间的大小受物理内存限制C.元空间存储类的实例对象D.元空间属于堆内存的一部分
二、多项选择题(共20题,每题2分,多选、少选、错选均不得分)下列属于JVM运行时数据区的有?()A.堆B.方法区C.虚拟机栈D.本地方法栈E.PC寄存器类加载的“双亲委派模型”的优势有?()A.防止类的重复加载B.保护核心类库安全C.提高类加载效率D.简化类加载逻辑E.避免类冲突垃圾收集算法中,“标记-整理算法”与“标记-清除算法”的区别有?()A.前者无内存碎片,后者有B.前者回收效率低,后者回收效率高C.前者需移动对象,后者无需移动D.前者适合老年代,后者适合新生代E.前者是分代收集的基础,后者不是下列属于JVM内存区域中“线程私有”的有?()A.PC寄存器B.虚拟机栈C.堆D.方法区E.本地方法栈触发JVM垃圾收集的条件可能包括?()A.堆内存不足B.方法区内存不足C.显式调用System.gc D.安全点到达E.类加载失败下列JVM参数中,属于“堆内存配置”的有?()A.-Xms B.-Xmx C.-XX:NewSize D.-XX:MaxNewSize E.-Xss下列哪些引用类型在JVM中会被垃圾收集器直接回收,与内存是否不足无关?()第5页共10页A.强引用B.软引用C.弱引用D.虚引用E.软引用和弱引用类加载的“验证”阶段包括哪些子阶段?()A.文件格式验证B.元数据验证C.字节码验证D.符号引用验证E.内存验证下列属于JVM垃圾收集器的有?()A.SerialGC B.ParallelGC C.CMS D.G1E.ZGCJVM中,“JIT编译”的优点有?()A.提高代码执行效率B.减少解释执行开销C.支持动态编译优化D.降低内存占用E.简化垃圾收集方法区存储的信息包括?()A.类的元数据(类名、字段、方法等)B.常量池C.静态变量D.即时编译后的代码E.实例对象下列哪些情况会导致类加载器“双亲委派模型失效”?()A.自定义类加载器重写loadClass方法B.线程上下文类加载器(Thread ContextClassLoader)设置C.启动类加载器加载用户自定义类D.类加载器加载的类与核心类库同名E.类加载过程中发生错误下列关于“内存屏障(Memory Barrier)”的描述,正确的有?()A.用于保证多线程间内存可见性B.可防止指令重排序C.JVM会自动插入内存屏障D.仅在并发环境下需要E.分为读屏障和写屏障JVM参数-XX:+UseAdaptiveSizePolicy的作用是?()A.启用自适应GC策略B.自动调整新生代、老年代大小C.自动调整Survivor区比例D.启用分代收集第6页共10页E.禁用GC日志下列属于JVM“栈溢出”(StackOverflowError)原因的有?()A.单个线程递归调用过深B.线程创建过多导致栈内存耗尽C.方法内创建大量局部变量D.堆内存中对象过多E.虚拟机栈容量设置过小下列关于“G1垃圾收集器”的描述,正确的有?()A.基于“Region”分代模型B.兼顾吞吐量和延迟C.是JDK9默认的垃圾收集器D.可预测停顿时间E.无需进行Full GC类加载的“初始化”阶段执行的操作包括?()A.执行静态变量赋值B.执行静态代码块C.调用静态方法D.加载父类E.验证类信息下列属于JVM“堆内存溢出”(OOM)的常见场景有?()A.循环创建大量对象不释放B.大对象直接进入老年代C.新生代Survivor区频繁发生垃圾收集D.方法区存储大量类信息E.栈内存中创建大数组JVM中,“安全点(Safepoint)”的特点有?()A.线程执行到Safepoint时可暂停进行GCB.线程通过自旋等待到达SafepointC.不同方法的Safepoint数量相同D.类加载、JIT编译过程中可能触发SafepointE.所有线程必须在Safepoint处暂停下列关于“JVM参数调优”的描述,正确的有?()A.优先调优新生代大小以提高GC效率B.大堆内存下优先选择G1而非ParallelGC第7页共10页C.调优前需通过GC日志分析问题D.调优应基于实际业务场景和监控数据E.过度调优可能导致性能下降
三、判断题(共20题,每题1分,正确的打“√”,错误的打“×”)JVM是Java程序跨平台的核心,其本身不依赖具体操作系统()堆内存是JVM中唯一被垃圾收集器回收的区域()类加载的“加载”阶段是将字节码文件加载到内存并创建Class对象()双亲委派模型中,AppClassLoader的父加载器是ExtClassLoader()新生代Eden区对象在一次Minor GC后若存活,会进入From Survivor区()CMS垃圾收集器是“并发收集”,不会暂停用户线程()JVM参数-Xss用于设置虚拟机栈的大小()弱引用的对象在内存不足时一定会被回收()方法区在JDK8中被元空间替代,元空间的大小受物理内存限制()指令重排序可能导致多线程环境下的可见性问题,需通过同步机制解决()G1垃圾收集器的“Mixed GC”是指回收新生代和老年代的Region()JVM的“即时编译器(JIT)”仅在程序运行时动态编译字节码为机器码()标记-复制算法适合堆内存较小的场景,如新生代()第8页共10页显式调用System.gc时,JVM一定会立即触发垃圾收集()元空间存储的常量池属于方法区的一部分()类加载过程中,“准备”阶段为静态变量赋初始值(如
0、null)()ZGC是JDK11引入的低延迟垃圾收集器,支持TB级内存()虚拟机栈中,每个方法调用会创建一个栈帧,用于存储局部变量表、操作数栈等()JVM参数-XX:MaxTenuringThreshold控制对象在新生代的最大存活次数()垃圾收集器的选择应优先考虑吞吐量,而非停顿时间()
四、简答题(共2题,每题5分)简述JVM内存区域的划分及各区域的作用简述垃圾收集的主要算法及其适用场景附参考答案
一、单项选择题(共30题,每题1分)C
2.C
3.A
4.B
5.A
6.D
7.C
8.C
9.C
10.AB
12.B
13.D
14.A
15.C
16.D
17.A
18.D
19.B
20.AB
22.A
23.B
24.D
25.A
26.C
27.D
28.C
29.A
30.B
二、多项选择题(共20题,每题2分)ABCDE
2.ABE
3.AC
4.ABE
5.ABCDABCD
7.CD
8.ABCD
9.ABCD
10.ABCABC
12.AB
13.ABCDE
14.ABC
15.ABEABCD
17.ABC
18.AB
19.ABD
20.BCD
三、判断题(共20题,每题1分)第9页共10页√
2.×
3.√
4.√
5.√
6.×
7.√
8.√
9.√
10.√√
12.√
13.√
14.×
15.√
16.√
17.×
18.√
19.√
20.×
四、简答题(共2题,每题5分)JVM内存区域划分及作用JVM运行时数据区分为线程私有和线程共享两部分线程私有区域包括PC寄存器(记录线程执行指令地址)、虚拟机栈(存储方法调用栈帧,含局部变量表、操作数栈等)、本地方法栈(服务本地方法调用)线程共享区域包括堆(存储对象实例,GC主要区域)、方法区(存储类元数据、常量池、静态变量等,JDK8后为元空间)垃圾收集主要算法及适用场景标记-清除(Mark-Sweep)标记可回收对象并清除,效率低、产生碎片,适用于老年代标记-复制(Mark-Copy)将内存分为两块,回收时复制存活对象到另一块,无碎片、效率低,适用于新生代Eden区标记-整理(Mark-Compact)标记存活对象后移动至一端,无碎片、成本高,适用于老年代分代收集根据对象生命周期分代(新生代/老年代),采用不同算法(如新生代用标记-复制,老年代用标记-清除/整理),提高效率说明本文试题覆盖JVM核心知识点,答案简洁准确,适合作为JVM基础学习与复习资料实际应用中,可结合GC日志分析、JVM参数调优等实践进一步深化理解第10页共10页。
个人认证
优秀文档
获得点赞 0