JAVA JVM基础与内存模型专题测试
考察知识点
本试卷涵盖以下核心知识点:
JVM概述与跨平台原理(5题)
- JVM实现Java跨平台的原理
- JVM的主要功能(字节码转换为机器码执行)
- JVM本身是平台相关的,不是跨平台
- Java源文件编译生成.class字节码文件
- JIT编译器将热点代码编译成本地机器码
- JDK、JRE、JVM的关系(JDK ⊃ JRE ⊃ JVM)
JVM内存结构(堆、栈、方法区等)(5题)
- JVM运行时数据区五大区域:堆、虚拟机栈、方法区、本地方法栈、程序计数器
- 堆内存是所有线程共享的,存储对象实例
- 虚拟机栈存储方法调用栈帧和局部变量,线程私有
- 方法区存储类信息、常量、静态变量,线程共享
- JDK 8用元空间取代永久代实现方法区
- 程序计数器记录当前执行字节码指令位置
对象创建与内存分配(4题)
- 对象创建流程:加载类 → 分配内存 → 初始化零值 → 设置对象头 → 执行构造方法
- 对象的成员变量存储在堆中,局部变量存储在栈中
- 静态变量存储在方法区中
- 对象内存分配方式:指针碰撞和空闲列表
垃圾回收机制与算法(5题)
- 引用计数法无法解决循环引用问题
- JVM使用可达性分析算法判断对象存活
- GC Roots包括栈中引用变量、静态变量等
- 垃圾回收算法:标记-清除、标记-整理、复制算法
- 标记-整理算法消除内存碎片问题
- Minor GC、Major GC、Full GC、Mixed GC的区别
- Parallel Scavenge收集器关注吞吐量
类加载机制与双亲委派模型(5题)
- JVM类加载器层级:Bootstrap、Extension、Application、自定义加载器
- Bootstrap ClassLoader是最顶层的类加载器
- Application ClassLoader加载classpath下的用户类
- 双亲委派模型的工作原理
- 类的唯一性由类名和ClassLoader共同决定
- 打破双亲委派的场景(Tomcat、SPI、OSGi)
- 类加载器之间是组合关系而非继承关系
1
判断题
Java程序能够"一次编写,到处运行"的根本原因是JVM的存在。
2
判断题
JVM本身是跨平台的,同一份JVM程序可以在不同操作系统上运行。
3
单选题
JVM的主要功能是什么?
4
单选题
Java源文件经过编译后生成的是什么文件?
5
单选题
关于JVM的执行方式,以下说法正确的是?
6
多选题
以下关于JDK、JRE、JVM关系的描述,正确的有哪些?
7
判断题
Java堆内存是所有线程共享的内存区域,用于存储对象实例。
8
单选题
方法内的局部变量存储在哪个内存区域?
9
单选题
关于JDK 8中方法区的变化,以下说法正确的是?
10
填空题
根据JVM规范,运行时数据区主要包括:______、________、______、__________、__________。
11
判断题
对象的成员变量存储在堆内存中的对象实例里,而局部变量存储在栈内存中。
12
单选题
Java中创建一个对象的主要流程是?
13
单选题
类的静态变量存储在哪个内存区域?
14
填空题
JVM创建对象时,首先在堆中________,然后将内存空间____________,接着设置______信息,最后执行________完成初始化。
15
判断题
引用计数法是一种简单有效的垃圾回收算法,可以正确回收所有不可达对象。
16
判断题
JVM使用可达性分析算法判断对象存活,GC Roots包括虚拟机栈中的引用变量和方法区中的静态变量。
17
单选题
标记-整理(Mark-Compact)算法相比标记-清除算法的主要改进是什么?
18
多选题
关于Parallel Scavenge垃圾收集器,以下说法正确的有哪些?
19
单选题
JVM中最顶层的类加载器是?
20
单选题
以下哪个场景通常需要打破双亲委派模型?
📝 发现内容有误?点击此处直接编辑
想参加完整模拟考试?
小程序提供计时考试、自动评分和详细解析
长按或扫描二维码,立即体验