华为OD Java 开发岗面经总结:技术面、HR 面与主管面考察要点
- 轮次
- 多轮合集
- 时间
- 2026-10
- 来源
- 牛客网
《面试题目》
准备阶段(简历与笔试)
- 简历上写的技能与项目,每一句对应的知识点能否讲清?不熟悉的内容为什么还要写?
- 笔试要不要集中刷题库?覆盖哪些核心考点就算够?
技术面(一面 + 二面)
- 请做一下自我介绍,说明个人背景、专业情况,跨专业或小众专业请补充专业介绍、计算机相关课程及转行/适配理由。
- 编程语言里常用注解有哪些,分别起什么作用?JVM 原理与垃圾回收机制了解吗?
- 常见排序算法的基本思想是什么?二叉树的层序、前中后序遍历怎么实现?
- 队列和栈各有什么特性?深度优先搜索的基本思路是什么?
- List 的常用方法有哪些?List 与数组的区别、时间复杂度与适用场景分别是什么?
- 常见异常有哪些?RuntimeException、Exception、Throwable 之间的关系是什么?
- 重载和重写的区别是什么?
- 进程和线程的定义分别是什么?线程有哪些状态与生命周期?
- 查询语句怎么写?索引创建的原则是什么,适合什么样的表?
- 查询速度优化的手段有哪些(SQL 语句优化、表结构优化、合理建索引)?
- Linux 常用命令掌握哪些(查看进程、查询 tomcat 日志异常、修改权限)?
- Git 基础操作掌握哪些(创建切换分支、提交项目)?
项目相关问题
- 项目使用的框架是什么?
- 项目的背景、你个人的职责、技术选型理由分别是什么?
- 框架之间怎么对比,技术细节上还有哪些延伸问题?
HR 面
- 核实基本情况:简历中的项目、技术栈能否详细复盘?
主管面
- 专业背景追问:跨专业或有考研经历者需说明专业适配性、考研原因。
- 对部门了解多少?
- 在校期间的项目经历是真实的吗,细节如何?
- 期望薪资多少?目前所在地?能否尽快到岗?
- 反问环节:部门业务范围、上班时间、办公地点。
《参考解析》
这场面试的考察结构。帖子里给出的核心判断是「面试围绕简历展开」:技术面重点在基础与项目,HR 面和主管面看适配度与稳定性。也就是说,简历不是一张用来过筛的纸,而是整场面试的提问清单——你写了什么,就要准备好被追问三层。准备方法上,把简历里每一个技能点和一个项目细节都写成「一句话描述 + 我做过什么 + 为什么这么做 + 踩过什么坑」的四段式,不熟悉的内容坚决不写,因为写上去的成本远高于不写:一旦被追问到答不上来,面试官会开始怀疑整份简历的真实性。
技术面的基础盘。帖子列出的考点其实是一份很典型的 Java 校招基础清单,可以按模块串起来复习。语言与 JVM:注解的元注解与运行时机(SOURCE / CLASS / RUNTIME,反射读取的成本)、类加载过程与双亲委派、运行时数据区、分代与常见 GC 算法及其适用场景。集合与算法:List 与数组的差别要落到内存与代价上——数组定长、内存连续、随机访问 O(1) 但增删要搬元素;ArrayList 扩容是 1.5 倍加拷贝,LinkedList 随机访问是 O(n)。排序要能说清快排的分治与最坏情况、归并的稳定性、堆排的思想,二叉树遍历要能当场写出递归与非递归版本。线程部分:进程是资源分配单位、线程是调度单位,线程状态与其转换条件(RUNNABLE / BLOCKED / WAITING / TIMED_WAITING)比背六种状态更重要,最好能结合锁与 wait/notify 讲出转换原因。异常体系:Throwable 是根,下面分 Error 与 Exception,Exception 再分受检异常与 RuntimeException,catch 顺序必须由子到父。
数据库与工程工具。索引部分要给出「为什么建、建在哪、什么时候别建」:区分度高的列、频繁出现在 where / join / order by 的列适合建;区分度低(性别、状态)或写多读少的表不适合,索引会拖慢写入并占空间。优化手段要分层说:SQL 层(避免 select *、避免函数与隐式转换导致索引失效、用 EXPLAIN 看 type 与 key、少用大 offset 分页)、表结构层(字段类型收敛、冷热字段拆分、适当冗余减少 join)、索引层(联合索引与最左前缀、覆盖索引)、架构层(缓存、读写分离、分库分表)。Linux 与 Git 要能报出具体命令:ps -ef | grep、top、tail -f、grep -n "Exception"、chmod、chown;Git 的 checkout -b、add/commit/push、merge/rebase、log --oneline,并且知道冲突怎么解。
项目题的回答要害。帖子点名「核心考察项目使用的框架」,说明面试官想听的不是业务流水账,而是技术决策:为什么选这个框架、它解决了什么问题、有没有对比过替代方案、性能瓶颈在哪、你具体写了哪一部分。面试时用「背景一句话 → 目标与约束 → 我的职责 → 关键设计与取舍 → 结果与量化 → 如果重做会改什么」的顺序讲,两分钟内说完主干,把细节留给追问。项目里出现的框架,至少要能讲清它的一条核心机制(比如 Spring 的 IOC 与 AOP 怎么实现、MyBatis 的映射与一级二级缓存、Netty 的线程模型),这是拉开差距的地方。
HR 面与主管面的答法。HR 面不考技术,考的是稳定性与沟通成本:离职原因、期望薪资、到岗时间要给一致、可核实的答案,别在不同轮次之间自相矛盾。主管面的问题更偏适配度,帖子里给的两条经验很实用:一是被问到不了解的部门,坦诚说明并请面试官介绍,既消耗了时间又加深了了解,比硬编要好;二是被问到考研或跨专业这类可能被质疑的经历时,说明外部客观因素与自己的适配性,别把原因全部归到自我否定上。到岗时间在实习/校招场景里是硬指标,能随时到岗就明确说;反问环节优先问业务范围、团队分工、办公地点这类实际信息,薪资与福利放在对方主动提或后续沟通里。
面试心态与临场。答错不必紧张——面试官更在意你能否意识到错误并修正,因为工作中判断力和自我纠错比不出错更难得。整场下来要做到「基础题不空、项目题有细节、软性问题口径一致」,这三点就足以拿到不错的评价。