因为金三银四的原因,小粉丝们都在寻找面试用的资料,所以最近在主攻的面试方面的文章。
这些天自己在网上翻阅了很多面经,加了一些面试题交流群。所以看了很多真实的、新鲜的面试题。
然而最让我震撼的是阿里三月份新出了一份阿里独家面试手册,这份手册囊括了面试必备的几个知识点,可谓是一书在手offer我有,我发现这份笔记的时候已经有七个小伙伴成功收获大厂的offer了,有点眼红;
先来展示下里面包含面试必备的几个知识点:
项目Java基础中间件数据库设计、场景、架构类上机好了,接下来挨个给大家展示笔记中包含的内容。
项目
毋庸置疑,这玩意非常重要。
几乎所有的面试,面试官都会让你介绍自己的项目。
他会问你:
项目整体架构共包含哪些服务服务之间信息流是如何流转的在项目中,有没有遇到什么难点有没有排查过项目的线上问题你觉得你现在的设计有什么问题么?如果你负责的服务从TPS变成1万TPS会有什么问题?怎么处理?如果你负责的这个功能之后需要频繁变更,你怎么设计?等等等当然还有很多种问法,不过都会结合你当前的项目进行发问。
面试官想考察你:
这个项目是不是真的是你做的是否对项目整体都有把控和关心平日里是否有对项目进行总结性思考是否有线上故障处理能力是否有设计和架构思维一些知识点是否能学以致用,比如线程池原理说得很溜,但是不知道在项目上怎么用。所以要多多准备自己的项目,扒一扒你自己负责的模块。
多想想,如果产品要频繁变更需求的话,这里应该怎么设计。
如果公司今年发展得很迅速,客户量激增的话,你负责的服务会有什么问题?
需要怎么处理、怎么设计?
因为这非常容易被问到,如果你答得好。
那么不仅突出你这个人有点东西,还会体现出你平日里喜欢钻研和思考。
对了,跟面试官介绍项目的时候,不要一上来就深入细节
由于文章篇幅原因无法展示全部,下面就仅给大家展示部分内容和截图,有需要完整PDF版的朋友可以转发此文后私信凭截图获取;
Java基础
中间件
一般你的简历肯定会写Redis、Memcache、Kafka、RocketMQ、RabbitMQ、Dubbo、SpringCloud之类的。
你写啥基本上会问啥。
所以,打有准备的仗。
如果你觉得时间来不及,你可以挑一个重点攻克一下,和面试官说我xxx比较熟,这样也是ok的。
毕竟,没有人是全能的。
数据库
这个也是必问的,一般都是MySQL。
会问一些:
项目上如何设计索引的呀写SQL有哪些需要注意的分库分表相关数据太多怎么查询常问索引结构,为什么要这样设计?能说说索引查找的流程么?了解多少说多少如何优化SQL隔离级别、MVCCMySQL的锁机制redolog、undolog之类的从中看看:
是否有SQL调优能力是否有数据库设计能力对数据库原理了解多少,即深度
设计、场景、架构类
这类就是看看你个人的设计能力了。包括条理是否清晰、考虑是否全面、表述是否通顺等等。
然后会和你互动,会问如果要这样的话怎么设计呀,如果要那样的话呢?
你说我扩容,我说不许扩容。
你说我限流,我说不许限流。
所以,这个还是得看看你的应变能力和平日的积累了。
上机
大厂逃不过笔试。
手写个LRU反转链表生产者消费者多线程顺序打印二叉树之类的反正一般不会太难,最多中等难度。这个平时记得多练练,注意是不要在idea里面写。在LeetCode上直接写好,毕竟到时候没有联想功能。靠日积月累的刷题了,每天一题刷刷更健康!
反正就是靠练,几乎需要形成肌肉记忆。
虽说LeetCode上面题目很多,但是常考的其实不外乎就那么几种。
最后
差不多了,提问基本上不会脱离这几个方向。并且这几个方向也都有固定的问题,不会偏离很多。
这里展示的不及阿里独家面试手册完整版的五分之一。
时间紧迫的朋友只对照以上这几点准备就好了,可以极大缩短准备时间,提升成功率;
所以针对性的准备准备,不打无准备之仗。准备完毕之后,那你就是面霸了。