华为OD Java开发面经

华为OD · Java开发工程师 · HR面/技术一面/技术二面/主管面 · 2026-04

《面试题目》

  1. HR面:自我介绍、简单介绍简历上的三个项目及负责模块、学校工作室项目职责与推进方式、能力突出点与不足、进入公司后主要写什么项目
  2. 技术一面:自我介绍、实习与工作室项目使用的技术栈和自己负责的部分、项目是否部署过、AI 使用情况(ClaudeCode 源码泄漏事件了解吗)、SpringAI 源码(ChatMemory)
  3. 如果与 AI 聊天出现幻觉该怎么解决?
  4. 与 AI 会话超过最大上下文时该如何处理?
  5. 介绍一下 RAG(结合自己的项目)
  6. Spring 中的 AOP 介绍一下
  7. 单例模式介绍一下
  8. JVM 加载子类时,父类是怎么加载的?
  9. 怎么写自定义注解?
  10. 简单介绍一下自动投简历时如何避免被平台反爬虫

《参考解析》

  1. JVM 加载子类时父类的加载时机:类加载遵循懒加载原则,JVM 在真正需要使用某个类时才会触发加载(如 new 一个子类实例、访问静态字段等),而加载子类时会先检查其父类是否已被加载,如果没有则会先完整加载并初始化父类(双亲委派模型下,父类加载本身也会先委托给上一级类加载器),保证子类初始化时能正确访问已初始化的父类成员。
  2. 单例模式的实现方式:懒汉式(首次调用时才创建,需要加双重检查锁 + volatile 防止指令重排序导致的半初始化对象问题);饿汉式(类加载时就创建实例,利用类加载机制保证线程安全,但可能造成资源浪费);推荐写法是静态内部类(利用类加载的懒加载特性天然实现线程安全的延迟初始化)或枚举单例(最简洁,且能天然防止反射和反序列化破坏单例)。