面灵AI

三七互娱服务器开发AI面试面经

轮次
AI面试
时间
2026-09
来源
牛客网

《面试题目》

  1. 操作系统的分段和分页内存管理机制分别是什么?两者的核心区别是什么?
  2. 布隆过滤器为什么会存在误判?如何降低误判率?
  3. Java 泛型的核心作用是什么?类型擦除会带来哪些问题?
  4. Java 类加载过程分为哪些阶段?每个阶段主要做什么?
  5. NoClassDefFoundError 和 NoSuchMethodError 分别会在类加载的哪个阶段产生?
  6. Spring 事务有哪些传播行为?不同传播行为分别适用于什么场景?
  7. 分享一次 Java 后端开发中遇到的技术挑战:如何分析原因、做出决策并解决问题?
  8. 分享一次借助 AI 工具解决陌生技术难题的经历:如何与工具交互并验证结果?

《参考解析》

  1. 分段与分页:分页按固定大小把虚拟地址和物理内存拆分,通过页表映射,便于离散分配并消除外部碎片;分段按代码、数据、栈等逻辑单元划分,段长可变,更贴近程序语义,但容易产生外部碎片。现代系统通常以分页为基础,并通过多级页表、TLB 等机制降低地址转换成本。
  2. 布隆过滤器误判:插入元素时,多组哈希函数会把位数组中的多个位置设为 1。不同元素可能命中相同位置,因此查询结果为“存在”只代表可能存在,而“绝对不存在”是确定的。扩大位数组、根据数据量选择合适的哈希函数数量,或在容量接近上限时扩容重建,都能降低误判率。
  3. 泛型与类型擦除:泛型把类型检查前移到编译期,减少强制转换并提升复用性。Java 编译后大部分泛型信息会被擦除为上界或 Object,因此不能直接创建泛型数组、不能用基本类型作为类型参数,也不能仅靠不同泛型参数进行方法重载;需要保留运行时类型时可显式传入 Class 或类型令牌。
  4. 类加载与链接错误:类生命周期通常包括加载、验证、准备、解析、初始化和卸载。NoClassDefFoundError 表示运行时需要的类无法完成加载或初始化;NoSuchMethodError 通常说明编译期与运行时依赖版本不一致,符号引用在解析或首次使用时找不到目标方法。
  5. 事务传播行为:常用的 REQUIRED 加入现有事务、没有则新建;REQUIRES_NEW 挂起外层并开启独立事务;NESTED 使用保存点形成嵌套事务;SUPPORTS、NOT_SUPPORTED、NEVER 和 MANDATORY 则分别表达可选、禁止或强制事务环境。选择时要先明确内外层失败是否应一起回滚。