jvm架构原理剖析篇


简单题(5道)

考查内容:JVM运行时数据区域

题干:Java虚拟机栈的主要作用是?
A. 存储对象实例
B. 存储方法调用和局部变量
C. 存储静态字段
D. 存储字节码指令
正确答案:B
解析:虚拟机栈用于存储方法调用帧(包括局部变量表和操作数栈),对象实例存储在堆中,静态字段存储在方法区,字节码指令存储在方法区。


考查内容:类加载机制

题干:以下哪个不是类加载的阶段?
A. 加载
B. 验证
C. 编译
D. 初始化
正确答案:C
解析:类加载分为加载、验证、准备、解析、初始化,编译是JIT编译器的行为,不属于类加载阶段。


考查内容:垃圾回收算法

题干:Mark-Sweep算法的主要缺点是?
A. 需要STW(Stop-The-World)
B. 无法处理循环引用
C. 产生内存碎片
D. 依赖分代思想
正确答案:C
解析:Mark-Sweep算法标记存活对象后直接清理,可能导致内存碎片化,而循环引用可通过算法检测,分代是优化策略。


考查内容:内存模型

题干volatile关键字的主要作用是?
A. 保证原子性
B. 防止指令重排序
C. 创建线程副本
D. 锁定内存地址
正确答案:B
解析volatile通过禁止指令重排序和提供可见性保证,但不保证原子性,线程副本是旧版JMM的概念。


考查内容:JVM架构

题干:以下哪项属于JVM运行时数据区?
A. 寄存器
B. 本地方法栈
C. 内核栈
D. 硬件缓存
正确答案:B
解析:JVM数据区包括虚拟机栈、本地方法栈、堆、方法区和程序计数器,其他选项属于系统或硬件层面。


中等题(10道)

考查内容:垃圾回收机制

题干:CMS(Concurrent Mark Sweep)的正确描述是?
A. 基于标记-清除算法
B. 需要完全STW
C. 适合老年代回收
D. 会产生紧凑内存
正确答案:A
解析:CMS采用标记-清除算法,并发标记和清理减少STW,主要针对老年代,但会留下内存碎片。


考查内容:类加载机制

题干:双亲委派模型的作用是?
A. 加快类加载速度
B. 避免类冲突
C. 优先加载自定义类
D. 减少内存占用
正确答案:B
解析:双亲委派通过优先加载核心类库(如java.lang包),避免用户类覆盖核心类,确保安全。


考查内容:内存模型

题干synchronized块对锁的影响是?
A. 升级为重量级锁
B. 触发GC操作
C. 释放锁后对象可被回收
D. 阻塞其他线程访问
正确答案:C
解析synchronized解锁后,对象监视器不再持有,若无其他引用则对象可被回收。


考查内容:JVM运行流程

题干:Java代码执行的第一步是?
A. 编译为字节码
B. 加载类到方法区
C. 解释执行指令
D. 分配堆内存
正确答案:B
解析:JVM启动后先加载类到方法区(如类信息、常量池),再执行字节码。


考查内容:数据区域

题干:以下哪项是线程共享的?
A. 虚拟机栈
B. 本地方法栈
C. 堆
D. 程序计数器
正确答案:C
解析:堆是全局共享的,虚拟机栈、本地方法栈和程序计数器均为线程私有。


考查内容:垃圾回收算法

题干:G1收集器的特点不包括?
A. 基于Region分区
B. 需要完全STW
C. 支持并行压缩
D. 可预测停顿时间
正确答案:B
解析:G1通过并行化和分Region回收减少STW时间,且支持可配置的停顿时间预测。


考查内容:类加载机制

题干:以下哪项属于类初始化的触发条件?
A. 父类初始化完成
B. 主动调用静态方法
C. 创建子类对象
D. 加载类文件到内存
正确答案:B
解析:类初始化(即方法执行)由主动引用(如调用静态方法)触发,被动引用(如创建对象)不会触发。


考查内容:内存模型

题干final字段的可见性如何保证?
A. 插入内存屏障
B. 禁止指令重排序
C. 使用锁同步
D. 延迟初始化
正确答案:B
解析final字段在构造函数完成后立即可见,JMM通过禁止对其写操作的指令重排序保证可见性。


考查内容:JVM架构

题干:方法区存储的内容不包括?
A. 类元数据
B. 常量池
C. 线程状态
D. 静态变量
正确答案:C
解析:方法区存储类信息、常量池和静态变量,线程状态由虚拟机栈中的程序计数器记录。


考查内容:垃圾回收机制

题干:ZGC(Z Garbage Collector)的核心目标是?
A. 减少内存碎片
B. 支持超大堆回收
C. 实现锁free暂停
D. 优化新生代回收
正确答案:B
解析:ZGC设计目标是处理TB级堆内存,同时保持低延迟,而非仅解决碎片或锁竞争问题。


困难题(5道)

考查内容:内存模型与多线程

题干:以下关于volatilesynchronized的说法正确的是?
A. volatilesynchronized更轻量
B. synchronized能保证原子性
C. volatile可替代synchronized
D. 两者均依赖CPU锁
正确答案:A
解析volatile仅保证可见性和禁止重排序,synchronized额外提供原子性和互斥,但性能开销更大。


考查内容:类加载机制与热更新

题干:JVM中类热替换(HotSwap)的关键限制是?
A. 方法签名不可修改
B. 类加载器必须一致
C. 不能添加新的接口
D. 静态变量会被重置
正确答案:A
解析:热替换要求新类的方法签名与原类完全一致,否则会导致兼容性问题,静态变量状态需手动恢复。


考查内容:垃圾回收与内存分配

题干:TLAB(Thread-Local Allocation Buffer)的主要目的是?
A. 减少全局锁竞争
B. 提高对象访问速度
C. 避免内存碎片
D. 加速跨代对象晋升
正确答案:A
解析:TLAB为每个线程分配独立内存区域,减少多线程并发分配时的全局锁(如Eden区锁)竞争。


考查内容:JVM底层原理

题干:JVM中方法调用的栈帧不包含以下哪项?
A. 局部变量表
B. 动态链接
C. 方法出口地址
D. 对象头信息
正确答案:D
解析:栈帧包含局部变量表、操作数栈、动态链接(方法引用)和方法返回地址,对象头信息存储在堆中。


考查内容:内存模型与指令重排序

题干:假设代码为:

int a = 1;  
int b = 2;  
// 可能发生重排序  
System.out.println(a);  
System.out.println(b);  

以下哪项是合法的重排序结果?
A. 1, 2
B. 2, 1
C. 打印顺序随机
D. 仅允许a=1在前
正确答案:B
解析:在无happens-before约束的场景下,JVM可能将a=1b=2的赋值重排序为b=2先执行,导致输出2,1。


以上题目涵盖JVM核心知识点,难度分层合理,解析清晰。如需调整或补充,请随时告知!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/89874.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/89874.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智链万物:人工智能驱动的产业智能化革命

当生成式AI在艺术与创意领域掀起风暴,大型语言模型重塑信息交互方式时,一场更为基础、影响更为深远的变革,正在全球实体经济的根基处悄然发生并加速推进——这就是产业智能化。它并非简单的“机器换人”,而是人工智能(…

python中上下文管理器 与 try finally有什么区别

目录 主要区别代码对比何时使用哪种方式 主要区别 语法简洁性 上下文管理器使用 with 语句,语法更简洁优雅try-finally 需要显式编写异常处理代码,更冗长 代码复用性 上下文管理器可以封装为类或函数,便于在多处复用try-finally 通常需要在每…

人体属性识别+跌倒检测:儿童行为监测与安全升级

智慧幼儿园的AI智能检测盒应用实践 背景:传统园区管理的三大痛点 传统幼儿园管理长期面临三大核心挑战:一是安全监控依赖人工巡查,存在视觉盲区与响应延迟,如某连锁幼儿园曾因人工巡查疏漏,导致3起儿童跌倒事故未能及…

【ESP32-IDF笔记】09-UART配置和使用

环境配置 Visual Studio Code :版本1.98.2 ESP32:ESP32-S3 ESP-IDF:V5.4 支持型号:ESP32、ESP32-C2、ESP32-C3、ESP32-C5、ESP32-C6、ESP32-C61、ESP32-H2、ESP32-P4、 ESP32-S2、ESP32-S3 简介 通用异步接收器/发送器 (UART) …

在 .NET Core 和 React 中使用 WebSockets 和 SignalR 进行实时数据传输

对于需要即时更新和通知的应用程序来说,实时数据传输至关重要。在 .NET Core 中,WebSocket 和 SignalR 提供了强大的工具来实现客户端和服务器之间的实时通信。在本指南中,我们将探讨如何在 .NET Core 应用程序中使用 WebSocket 和 SignalR 实…

第八十六篇 大数据排序算法:从厨房整理到分布式排序的智慧

目录一、基础排序算法:生活场景中的计算智慧1.1 冒泡排序:图书馆的书籍整理1.2 插入排序:厨房调料的整理艺术二、高效排序算法:大数据处理的利器2.1 快速排序:音乐APP的智能歌单2.2 归并排序:学校成绩单的合…

开源 | V3.1.1慧知开源重卡运营充电桩平台 - 重卡运营充电桩平台管理解决方案;企业级完整代码 多租户、模拟器、多运营商、多小程序;

【开源免费版】推荐一套企业级开源充电桩平台:完整代码包含多租户、硬件模拟器、多运营商、多小程序,汽车 电动自行车、云快充协议;——(慧哥)慧知开源充电桩平台;https://liwenhui.blog.csdn.net/article/details/148242725?spm…

ONLYOFFICE 协作空间 企业版使用秘籍-8.使用虚拟数据房间,处理机密文档更安全

在当今快节奏的社会中,信息已成为极其关键的资源,因此,保护敏感数据至关重要。ONLYOFFICE 协作空间中的虚拟数据房间(VDR)提供了一个安全便捷的工作空间,确保文档受到严密保护的同时,也能实现轻…

系统架构设计师论文分享-论软件架构复用

我的软考历程 摘要 2023年2月,我所在的公司通过了研发纱线MES系统的立项,该项目为国内纱线工厂提供SAAS服务,旨在提升纱线工厂的数字化和智能化水平。我在该项目中担任架构设计师,负责该项目的架构设计工作。本文结合我在该项目…

虚拟主机与独立服务器如何选择

在搭建和维护网站时,选择合适的服务器套餐至关重要。虚拟主机和独立服务器是两种常见的选择,它们各有优缺点,适用于不同需求的用户。本文将深入探讨这两种服务器类型的特点,以帮助您为您的网站选择最合适的服务器解决方案。虚拟主…

NFC的安全技术体系

NFC(近场通信)技术因广泛应用于移动支付、身份认证、门禁控制等敏感场景,其安全技术体系是保障用户数据与交易安全的核心。该体系涵盖数据传输安全、存储安全、身份认证、防攻击机制等多个维度,通过硬件隔离、加密算法、协议规范等…

Echarts3D柱状图-圆柱体-文字在柱体上垂直显示的实现方法

全部代码 <!DOCTYPE html> <html lang"en" style"height: 100%"> <head><meta charset"utf-8"><title>3D柱状图-圆柱体-文字竖排</title> </head> <body style"height: 100%; margin: 0"…

【算法训练营Day08】字符串part2

文章目录 反转字符串里的单词右旋字符串KMP算法双指针法总结 反转字符串里的单词 题目链接&#xff1a;151. 反转字符串中的单词 双指针法解题逻辑 head指针遍历字符串遍历到单词首单词&#xff0c;生成end指针移动到单词尾部遇到完整单词收集&#xff0c;压入栈中head指针移动…

如何使用backtrace定位Linux程序的崩溃位置

在嵌入式Linux开发中&#xff0c;特别是复杂软件&#xff0c;多人协作开发时&#xff0c;当某人无意间写了一个代码bug导致程序崩溃&#xff0c;但又不知道崩溃的具体位置时&#xff0c;单纯靠走读代码&#xff0c;很难快速的定位问题。 本篇就来介绍一种方法&#xff0c;使用…

十大排序算法汇总

好的&#xff0c;下面为你整理一篇面试全覆盖、极其深入的十大排序算法总结博客&#xff0c;涵盖算法原理、复杂度、稳定性、应用场景、工程实践、C与Python实现&#xff08;含详细注释&#xff09;&#xff0c;并对比分析各种排序的优缺点与适用情境。内容力求结构清晰、讲解透…

零基础 “入坑” Java--- 七、数组(二)

文章目录 一、数组转字符串二、数组的拷贝三、求数组中元素的平均值四、查找数组中指定元素&#xff08;顺序查找&#xff09;五、数组排序&#xff08;冒泡排序&#xff09;六、查找数组中指定元素&#xff08;二分查找&#xff09;七、判断两个数组中的元素是否相等八、填充数…

【C++ 真题】P1104 生日

P1104 生日 题目描述 cjf 君想调查学校 OI 组每个同学的生日&#xff0c;并按照年龄从大到小的顺序排序。但 cjf 君最近作业很多&#xff0c;没有时间&#xff0c;所以请你帮她排序。 输入格式 输入共有 n 1 n 1 n1 行&#xff0c; 第 1 1 1 行为 OI 组总人数 n n n&…

Oracle DB和PostgreSQL,OpenGauss主外键一致性的区别

针对于unique索引在主外键上的表现&#xff0c;o和PG的行为确实不一致&#xff0c;测试样例&#xff1a;PG:测试1&#xff1a;test# CREATE TABLE gdb_editingtemplates ( objectid INTEGER NOT NULL, globalid VARCHAR(38) DEFAULT {00000000-0000-0000-0000-000000000000} …

06.自动化测试概念

自动化测试概念 1. 自动化1.1 回归测试1.2 自动化分类 1.3 自动化测试金字塔2. web自动化测试3.Selenium 1. 自动化 ​ **自动化测试&#xff08;Automated Testing&#xff09;&#xff1a;**是指使用软件工具或脚本来自动执行测试任务&#xff0c;代替人工进行重复性、繁琐的…

页面登录数据的加密(前端+后端)

本加密过程使用的 AESRSA概要1.使用AES对传输数据进行加密AES为对称加密,加密和解决所需要的key是一样的,所以拦截到AES key就可以直接解密,所以需要结果RSA进行加密2.对AES的key进行RSA加密RSA为非对称加密,客户端只能获取到publicKey(公钥),而解密只能使用服务器的privateKey…