Appearance
💼 Java 面试与工程能力
面试准备
基础知识
- Java 基础语法
- 面向对象编程
- 集合框架
- 多线程
- JVM 原理
框架知识
- Spring 框架
- Spring Boot
- MyBatis/Hibernate
- Redis
- MySQL
算法与数据结构
- 排序算法
- 查找算法
- 树、图等数据结构
面试结构(建议):
自我介绍 → 项目深挖(目标/挑战/权衡)→ 基础巩固(JVM/并发/网络/数据库)→ 设计题 → 行为面工程能力
代码规范
- 命名规范
- 代码风格
- 注释规范
设计能力
- 系统设计
- 架构设计
- 数据库设计
可靠性与可观测性
SLO/SLA/SLI:目标、承诺、指标
四黄金信号:延迟、流量、错误、饱和度DevOps 与流程
- Git 分支模型(trunk/feature/hotfix);PR 审查清单;
- CI(编译/测试/静态扫描/制品)、CD(灰度/回滚策略)。
调试能力
- 日志分析
- 性能分析
- 问题排查
面试技巧
准备项目经验
- 项目背景
- 技术选型
- 遇到的挑战
- 解决方案
回答问题
- 清晰表达
- 逻辑清晰
- 举例说明
设计与Trade-off表达模板
目标 → 约束(时延/一致性/成本)→ 候选方案 → 权衡 → 选择与风险现场编码与算法
- 先复述题意与边界;写出样例;自顶向下分解;复杂度分析与边界测试。
学习路径
- 基础阶段:掌握 Java 基础语法和面向对象
- 进阶阶段:学习集合、多线程、JVM
- 框架阶段:学习 Spring、MyBatis 等框架
- 项目阶段:通过实际项目积累经验
- 深入阶段:学习分布式、微服务等高级技术
高频题清单(示例)
- 并发:
volatile语义、DCL 正确写法、锁升级、线程池参数如何选。 - JVM:G1/ZGC 的关键差异、如何读 GC 日志、一次 OOM 如何排查。
- 数据库:事务隔离级别与幻读、索引设计、慢查询定位。
- Spring:Bean 生命周期、AOP 切点、事务传播与失效场景。
- 设计:CAP 与 BASE、幂等/重试/去重;缓存击穿/穿透/雪崩治理。
项目深挖问题(模板)
- 你负责的模块中,最难的技术挑战是什么?如何衡量成效?
- 线上事故复盘:根因、处置、改进项与跟踪结果。
- 做过哪些“去人肉化”的工程化改造(自动化、观测、质量门禁)。
资源推荐
- 官方文档
- 技术博客
- 开源项目
- 在线课程
💡 提示:持续学习、实践项目、总结经验是提升工程能力的关键
