前言
如何在金九银十成功斩获Offer!BATJ大厂面经(成功关键:吃透九大核心知识+狂刷大厂面试真题)
第一轮:团队面试
第一轮基本上是你的团队成员面试你,是和你同级或者高你一个P的师兄来面你,我的话基本没问什么特别的,主要还是讲自己简历上的做的项目,这里需要你很熟悉自己的项目才行。
我个人觉得这里你要把项目里你的角色做了什么没做什么讲清楚,然后最好能把自己做的那部分重点展开来讲,然后面试官会从你讲的内容里挑一些具体来问你,这部分就因人而异了,知道的说不知道的别瞎说。
一些什么TCP/UDP啊、网络模型啊之类的基础知识。我是觉得这一面只要你项目靠谱、不吹牛逼、底子扎实,过一面应该都不是问题。
第二轮:主管面试
这一面其实跟第一面差不多,就是你的师兄们筛完简历了,然后到你的主管来面试你了而已。这一面我的面试官还是让我主要介绍简历(可能因为我是社招,有项目经历他们比较感兴趣吧),然后我就又讲了一遍,因为我一面完了之后有思考过,所以这一次基本上上次没有讲到或者讲得不好的地方这次我都有注意,基本讲的还行。
然后接下来依旧是根据你讲的东西来挑重点的来问,这部分真的没有什么固定套路,都是他们听见啥感兴趣的就会问你是“怎么实现的,为什么这么实现,有没有更好的实现方式”这三个问题。
这一回除了你要对自己项目足够熟悉之外,还要求你对你做过的东西要有思考才行,你要是现想,那肯定是不靠谱的。这一轮对面最少都是P8级别的人了,千万可别不懂装懂的乱说呀。还是那句话,知之为知之,不知为不知,是知也。
第三轮:交叉面试
这一面基本是找个其他部门和你将来的主管平级的leader来面你一遍,防止前面自己部门面试作弊嘛。
基本套路和二面差不多,但是会多问你一些基础知识和编程能力上的事,主要还是以考核你为目的,肯定不是为了难为你的,所以,好好加油表现出你自己就行。
第四轮:代码面试
这一面据我后来的师兄讲本来是二面,是想省了的,但是后面由于流程规定,又给我加回来了,所以我就经历了一次在线笔试的面试。这一面的面试是给你一个在线网站,然后你和你的面试官一起登陆上去,共享web页面,然后他给你出题,你来现场写代码,伪代码就行,然后你再给他讲一遍你的逻辑就ok了。
这一面没什么好讲的,写代码嘛,是骡子是马拉出来溜溜咯。出的题不会很难,我答的是两道,一道给我半小时,第一道是给你一个shell命令,执行的功能大概就是读取一个日志文件,然后根据日志里的某一字段排序,然后取前五,输出。大概考点就是:
1.你得读懂这个有cat、有awk、有sort等等猛地一看还挺长的shell命令;
2.实现它;
3.时空间复杂度/效率;
4.讲清楚。
第二道题目是反转字符串,大概就是把字符串“123456789”从中间分开,然后分别反转,然后输出,输出结果是“432159876”。大概考点就是:
1.实现它;
2.时空间复杂度/效率;
3.讲清楚;
4.尝试给出优化方案;
大概就是这种类型的题,肯定不会重复的,师兄说很可能就是他们最近写代码遇到的问题,就直接拿来问你了,所以也没什么固定套路,你也不用临时抱佛脚的刷题,随缘就好。
第五轮:boss面试
到这一面的时候基本就稳了,当然我也见过挂的。这一面就是你的主管的主管来面你了,我当时还是先讲项目,然后挑重点的问,不过和二三面明显的区别就是他会问你更高层次的解决方案,不再拘泥于你做的那一点东西,会让你从整体上或者部分整体上讲清楚你项目的解决方案以及你自己的思考(上面的那三个问题),会让你尝试给出更好的解决方案,并解释原因。
我个人感觉这一面更多的是考验你的全局观,你要是一直拘泥于自己的小天地,那估计会吃亏的。当然,面试分人的,有的非技术出身的主管就是和你聊聊天谈谈人生理想什么的,你要是不match也会被淘汰。
第六轮:HRG面试
如果你能面到这一面那你基本99%拿到Offer!主要就是和你谈人生、谈理想、谈三观、谈薪资,只要你不反人类、不扯淡,就OK。
把自己的面试经历分享出来之后,很多朋友都问我有没有什么学习方法,其实除了自己的所需要的掌握的技术之外,面试过程中一些技巧和一些面试题也是必不可少的!可以分享给大家一条自己刷的面试题,里面涵盖了:Java基础、JVM、多线程与高并发、spring、springMVC、MyBatis、SpringBoot、SpringCloud、微服务、数据库、网络底层、TCP、数据结构与算法等等以及一整套的大厂面试真题。
Java九大核心知识点总结
这份笔记总共九大部分,涵盖了Java小白到Java架构师层面的面试知识点总结,这里给大家卖个关子:这份笔记100%免费获取!因为这份笔记的知识点太多,小编没办法为大家全部完整的展示出来。
Java开发1—2年基础:JVM篇
本篇主要讲述了JVM原理,涉及JVM运行机制、JVM内存模型、常用垃圾回收算法和JVM类加载机制等内容。
1—2年Java工程师必会:Java基础篇
本篇讲解Java基础知识,涉及集合、异常分类及处理、反射、注解、内部类、泛型和序列化等内容。
Java开发2—3年高级工程师:Java并发编程篇
本篇讲述讲解Java并发编程知识,涉及Java多线程的工作原理及应用、Java线程池的工作原理及应用,以及锁、进程调度算法等内容。
Java面试中必问的数据结构:数据结构篇
本篇讲解数据结构知识,涉及栈、队列、链表、散列表、二叉树、红黑树、图和位图等内容。
3—4年Java架构师必问:常用算法篇
本篇讲解Java中的常用算法,涉及二分查找、冒泡排序、插入排序、快速排序、希尔排序、归并排序、桶排序、基数排序等算法。
5年Java架构师面试必问网络底层:网络与负载均衡篇
本篇讲解网络与负载均衡原理,涉及TCP/IP、 HTTP、常用负载均衡算法和LVS原理等内容。
Java架构师进阶:数据库及分布式事务篇
本篇讲解数据库及分布式事务原理,涉及数据库存储引擎、数据库并发操作和锁、数据库分布式事务等内容。
Java高级架构师必备:分布式缓存的原理及应用篇
本篇讲解分布式缓存的原理及应用,涉及分布式缓存介绍、Ehcache原理及应用、Redis原理及应用、分布式缓存设计的核心问题等内容。
23种设计模式篇
本篇讲解设计模式,涉及常见的23种经典设计模式。
面试题总结