本项目是本人于2018年参加BATJ等其他公司电话、现场面试之后总结出来的针对Java面试的知识点或真题,每个点或题目都是在面试中被问过的。
除开知识点,一定要准备好以下套路:
- 个人介绍,需要准备1分钟和5分钟两个版本,包括学习经历、工作经历、项目经历、个人优势、一句话总结。一定要自己背得滚瓜烂熟,张口就来
- 抽象概念回答方式,当面试官问你是如何理解多线程的时候,你要知道从定义、来源、实现、问题、优化、应用方面系统性地回答
- 项目所占的比重是非常大的,至少与知识点的比例是五五开,所以必须针对简历中的两个以上的项目,形成包括【架构和实现细节】,【正常流程和异常流程的处理】,【难点+坑+复盘优化】三位一体的组合拳
- 压力练习,面试的时候难免紧张,可能会严重影响发挥,通过平时多找机会参与交流分享,或找人做压力面试来改善
- 表达练习,表达能力非常影响在面试中的表现,能否简练地将答案告诉面试官,可以通过给自己讲解的方式刻意练习
Java基础
Web框架、数据库
通用基础
分布式
微服务
算法(头条必问)
- 数组-快速排序-第k大个数
- 数组-对撞指针-最大蓄水
- 数组-滑动窗口-最小连续子数组
- 数组-归并排序-合并有序数组
- 链表-链表反转-链表相加
- 链表-双指针-删除倒数第n个
- 二叉树-递归-二叉树反转
- 动态规划-连续子数组最大和
- 数据结构-LRU淘汰算法
项目举例
系统设计
欢迎光临我的博客,发现更多技术资源~