华为 Java / 后端怎么准备

更新于 2026-09-02 · 面试易

华为软件岗公开反馈里,编码和基础仍然重。社招也会问可维护性:配置下发、兼容、日志,而不只是堆框架。

本页按编码、幂等下发、兼容、排障和文档协作来练。轮次以你收到的安排为准。

华为怎么面Java后端

面试阶段与知识点

第一批不把每个阶段拆成独立 URL,避免程序化重复页。阶段对应下面的题,练完再用模拟面试串起来。

值得开口练的题

每题给考察点、思路、结构化参考答案和追问。参考答案用来组织语言,面试时必须换成你自己的项目事实。

手写一个有界阻塞队列,生产比消费快时你怎么做?

难度 中等 · 出现频率 高 · 编码与实现

考察点

  • 等待与唤醒
  • 溢出策略
  • 中断

回答思路

先讲锁和条件队列的实现,再讲满队列时的策略:阻塞、丢弃还是拒绝,并说明取舍。

结构化参考答案

  1. put 在队列满时等待,take 在队列空时等待,循环检查条件并正确处理虚假唤醒。
  2. 响应线程中断请求,不吞 InterruptedException,让上层能感知并退出阻塞。
  3. 提供带超时的 offer 和 poll 接口,给调用方在高峰或关闭场景下的退出路径。
  4. 说明公平锁与非公平锁、吞吐量与延迟的取舍,不假装一种实现适合所有场景。

面试官可能追问

  • 能否无锁实现?
  • 容量 0 或负数怎么校验?
  • 如何测并发正确性?

用这道题开始模拟面试

设备配置下发失败一半,如何做到可重试且不重复生效?

难度 困难 · 出现频率 高 · 系统设计

考察点

  • 意图与版本
  • 幂等
  • 部分失败

回答思路

配置是设备目标状态而不是日志;每次下发带版本,部分失败要能精准重试未生效项。

结构化参考答案

  1. 服务端保存目标配置版本,设备定期上报当前版本,双方对账后再决定是否需要下发。
  2. 重复下发同一版本必须幂等,设备侧应用逻辑要能识别「已是目标态」并快速返回成功。
  3. 部分失败时记录哪些配置项未生效,只重试失败项,避免全量重刷加重设备负担。
  4. 回滚也作为一次新版本下发,而不是删除历史记录,保证变更链可追溯可审计。

面试官可能追问

  • 设备离线很久如何追赶?
  • 双向配置冲突谁赢?
  • 如何证明设备已应用?

用这道题开始模拟面试

新版本接口要兼容旧客户端,你怎么设计?

难度 中等 · 出现频率 中 · 基础知识

考察点

  • 字段兼容
  • 版本协商
  • 下线计划

回答思路

兼容是工程纪律:新增字段不能破坏旧语义,旧客户端要有明确的版本协商和下线计划。

结构化参考答案

  1. 只增加可选字段,不复用旧字段含义,避免旧客户端误读新语义导致 silent bug。
  2. 用版本头或能力位协商,旧客户端继续走旧逻辑,新客户端才启用新字段和新行为。
  3. 监控各版本客户端占比,制定下线时间表,避免无限期背负多套兼容分支。
  4. 用契约测试和 CI 拦住破坏性变更,接口文档与实现必须同步更新。

面试官可能追问

  • 不得不改语义时如何做双读?
  • 错误码变更怎么沟通?
  • 文档谁维护?

用这道题开始模拟面试

线上偶发空指针,日志不全,你怎么补可观测性?

难度 中等 · 出现频率 中 · 项目深挖

考察点

  • 关联 ID
  • 现场
  • 采样

回答思路

先提升可观测性再谈修复;偶发空指针往往缺关联 ID 和边界日志,采样也要有计划。

结构化参考答案

  1. 为每个请求生成关联 ID 并贯穿日志,便于把分散的 ERROR 串成完整调用链。
  2. 在模块边界记录输入摘要和关键分支,避免打敏感数据,但要能定位哪一步返回了 null。
  3. 对已知空指针路径加断言或安全降级返回,避免直接把异常抛到用户侧。
  4. 对慢请求和错误请求做采样采集,而不是全量 debug,控制磁盘和性能开销。

面试官可能追问

  • 日志会不会把磁盘打满?
  • 如何避免日志含密钥?
  • 修复后如何证明不再出现?

用这道题开始模拟面试

评审里你认为接口设计有缺陷,对方以进度拒绝,你怎么办?

难度 入门 · 出现频率 中 · 行为与协作

考察点

  • 记录风险
  • 最小补丁
  • 升级

回答思路

要留下书面风险和可回退方案,而不是当场赢辩论;涉及安全或数据损坏必须升级。

结构化参考答案

  1. 用具体失败场景说明接口缺陷,例如并发下状态错乱或重复写入,而不是抽象批评。
  2. 提出本版本最小防护补丁和下版本重构计划,让进度和风险都有落点。
  3. 把未采纳的风险和建议写进评审记录,便于上线后出现问题时快速对齐上下文。
  4. 若涉及安全、资金或数据损坏,升级到有权拍板的人,不能因进度压力静默上线。

面试官可能追问

  • 如果最后仍按对方方案上线,你如何跟?
  • 你怎样避免被看成阻塞?
  • 事后证明你是对的,怎么提?

用这道题开始模拟面试

和岗位、模拟面试一起用

资料管理里保存目标岗位 JD,模拟面试会按简历出题。点题目下的按钮会把本题带进模拟开场,仍需先绑定简历与岗位。

用模拟面试练华为Java后端