Skip to content

💼 Java 面试与工程能力

面试准备

基础知识

  • Java 基础语法
  • 面向对象编程
  • 集合框架
  • 多线程
  • JVM 原理

框架知识

  • Spring 框架
  • Spring Boot
  • MyBatis/Hibernate
  • Redis
  • MySQL

算法与数据结构

  • 排序算法
  • 查找算法
  • 树、图等数据结构
面试结构(建议):
自我介绍 → 项目深挖(目标/挑战/权衡)→ 基础巩固(JVM/并发/网络/数据库)→ 设计题 → 行为面

工程能力

代码规范

  • 命名规范
  • 代码风格
  • 注释规范

设计能力

  • 系统设计
  • 架构设计
  • 数据库设计

可靠性与可观测性

SLO/SLA/SLI:目标、承诺、指标
四黄金信号:延迟、流量、错误、饱和度

DevOps 与流程

  • Git 分支模型(trunk/feature/hotfix);PR 审查清单;
  • CI(编译/测试/静态扫描/制品)、CD(灰度/回滚策略)。

调试能力

  • 日志分析
  • 性能分析
  • 问题排查

面试技巧

准备项目经验

  • 项目背景
  • 技术选型
  • 遇到的挑战
  • 解决方案

回答问题

  • 清晰表达
  • 逻辑清晰
  • 举例说明

设计与Trade-off表达模板

目标 → 约束(时延/一致性/成本)→ 候选方案 → 权衡 → 选择与风险

现场编码与算法

  • 先复述题意与边界;写出样例;自顶向下分解;复杂度分析与边界测试。

学习路径

  1. 基础阶段:掌握 Java 基础语法和面向对象
  2. 进阶阶段:学习集合、多线程、JVM
  3. 框架阶段:学习 Spring、MyBatis 等框架
  4. 项目阶段:通过实际项目积累经验
  5. 深入阶段:学习分布式、微服务等高级技术

高频题清单(示例)

  • 并发:volatile 语义、DCL 正确写法、锁升级、线程池参数如何选。
  • JVM:G1/ZGC 的关键差异、如何读 GC 日志、一次 OOM 如何排查。
  • 数据库:事务隔离级别与幻读、索引设计、慢查询定位。
  • Spring:Bean 生命周期、AOP 切点、事务传播与失效场景。
  • 设计:CAP 与 BASE、幂等/重试/去重;缓存击穿/穿透/雪崩治理。

项目深挖问题(模板)

  • 你负责的模块中,最难的技术挑战是什么?如何衡量成效?
  • 线上事故复盘:根因、处置、改进项与跟踪结果。
  • 做过哪些“去人肉化”的工程化改造(自动化、观测、质量门禁)。

资源推荐

  • 官方文档
  • 技术博客
  • 开源项目
  • 在线课程

💡 提示:持续学习、实践项目、总结经验是提升工程能力的关键