【2年经验】简简单单一个秋招拿下阿里、字节、美团等offer,现在把大佬的面经分享给大家!

前言

楼主本科渣211,硕士华科,专业均SE,校招的时候没啥实习经历,进大厂工作两年多,做后端开发的工作,没有涉及到高并发的case,也没有大流量的项目,也没有必须引入某些中间件或者nosql才能解决业务问题的场景,简称“三无”,只能尽量在简历里矮子里面拔将军,写一些可能有些价值点的内容。社招过程中拿过美团、货拉拉、微众、阿里、字节的offer,最终选择字节。

关于社招的最大感受

校招的时候因为没参加过实习,基本全是实验室的玩具项目,业务复杂度跟技术复杂度可能O(1)级别,最多的面试基本就是基础知识,框架原理等,没啥好说的,项目随便讲讲也就过了。

社招的时候如果你做的领域或者方向跟面试的岗位不搭界的话,那么社招面试基本上难度会陡然上升,全靠技术硬实力;如果你是相似的领域,那么可能会项目涉及的很多,技术没有那么难,如果你刚好是他们所需要的一个领域模块,那么你就会有更大的机会面试成功。

社招面试项目很重要,不光是你项目本身的技术复杂度,还有业务复杂度,你本身在项目中担任的什么角色,遇到过什么问题,是技术瓶颈问题,还是业务问题,怎么解决的,这几个问题是非常重要的

很多同学包括我自己一开始也没有头绪,看很多面经都说要对自己的简历滚瓜烂熟,对自己的项目烂熟于心,所以到底是什么算烂熟于心,仅仅是把简历写的内容背下来吗?

下面总结了一些问题,要注意自己一定要在自己的逻辑里面自洽,不能前后矛盾,前因后果要想清楚。也可以自己不要把所有问题都说满,可以故意漏下问题,等面试官提问(面试套路,自己主导问题方向)。总之,不然可能一个不是这个范围的问题把你问到了,你不知道如何回答,会给面试官一个不好的印象(为啥你自己的项目你都没有吃透?)

最后总结下社招面试最主要的几种问题:

  • 1 你项目为什么这么设计?
  • 2 这么设计为了应对什么样的问题?你这样设计有什么好处,获得了哪些收益?
  • 3 这么设计有什么瓶颈吗?遇到了什么问题?这么设计有哪些地方不好的?考虑不周的?
  • 4 针对问题怎么解决的?针对不好的地方怎么去优化?
    假如你是大厂出来的,如果面试的时候一问三不知,或者两不知,或者面试被一问,因为自己的问题没有准备好而导致卡壳或者思考不周,那面试就会大打折扣,这时候大厂反而不是光环了,而是一个问题。(大厂应该都还可以,怎么到你这不咋行了呢?)
    面试一定要自信。本来应聘就是双向选择的过程,面试的公司也不是非你不进,不要因为你是面试者就姿态很低,一种乞求面试官给你一份工作的姿态,这样是不对的。好的面试应该是你自信表达你自己的理解,即使不会也不要为难,不需要支支吾吾或者瞎说,这是大忌。不会就是不会,可以潇洒的回答,没有关系的,好的公司也不会就你不会的问题一直追问,这也没有意义。

【2年经验】简简单单一个秋招拿下阿里、字节、美团等offer,现在把大佬的面经分享给大家!_第1张图片
另外我这里准备了一线大厂面试资料和我原创的超硬核PDF技术文档,以及我为大家精心准备的多套大厂面试题(不断更新中),有需要的朋友点击这里备注csdn,自行下载即可!希望大家都能找到心仪的工作!
【2年经验】简简单单一个秋招拿下阿里、字节、美团等offer,现在把大佬的面经分享给大家!_第2张图片

楼主社招面试经历

  • 其实社招对于楼主这种白天加晚上还要干好本职工作,应对需求的情况,还是很不友好的,如果你晚上还要忙着加班,那就更苦不堪言了。楼主从7月8月开始着手复习,其实复习的进度很慢,首先尽可能腾出晚上的时间进行充电,假如10点钟下班到家,再稍事歇息后,就10点20或者10点半开始充电,最好复习一个小时多一点,差不多看到11点半,准备洗漱睡觉。但是如果下班后的通勤时间也很长,感觉可以在路上充电一会。
  • 周末的时候那就更要安排好时间,这是难得的整块的时间。首先你肯定需要列一个大纲,需要复习的内容包含哪些模块,这个周末重点复习哪个模块。然后就是调整好跟女朋友或者家庭的时间,稳固好感情,说明你正在做的事情,不要因为这种事情既影响了你的感情又影响了你的复习进度。
  • 关于简历,对于楼主来说简历很难写,对于技术栈又不敢写精通,不特别懂原理的又不敢多写,所以技术栈看起来也比较薄弱。对于简历的项目,出彩的地方也不多,自己沉淀总结的东西也欠缺一些。但是有些技巧,例如你负责了哪些项目,负责了哪些模块,实现了什么功能,提升了多少性能,可能放一个数字更能体现你的价值,例如:通过xxx的优化,查询速度提升100%;
    通过xxxx的优化,实现了xxx秒的无感知扩展;通过xxx的优化,处理速度提升200%等等等语句
  • 关于面试安排,楼主是9月多开始在boss上传了简历,然后就有很多打招呼的,所以你需要在里面筛选出你自己感兴趣的岗位。个人建议,可能需要一些岗位打好前站,例如你就想入职阿里,那么也不能一开始就面试阿里,当然大佬略过哈,因为面试经验也是一个逐渐熟练的过程,状态也是有一个提升的过程,可能对前面的公司不太公平,但的确是有效的方法。然后对于社招且在职且工作任务可能比较多的应聘者来说,是痛苦的过程,面试时间我绝大部分都是安排在晚上,抽出一个小时定好会议室,可能面试完还需要继续工作,或者赶上发布还要更紧张一些,可能还会面临本来需要你这个时间在工位上解决问题,然后你去面试这样的尴尬的境地,还提心吊胆,哎,一言难尽。
  • 所以面试安排也不能每天晚上都有面试,每家公司的面试流程有慢有快,然后你也需要协调每个星期新投几家公司,这个星期可能会有几个原来的面试流程中的面试。楼主个人建议可能一个星期可以2家,这个因人而异,记的每次面试后的总结,问题分析,这个非常非常重要。不要觉得面试完就面完了,觉得面试不好就心灰意冷,面试的问题才是你需要提升的地方,这是快捷有效的提升自己的方式。
  • 基本时间里程就是7月8月准备,9月开始投,前期是积累经验,9月底和10月份开始投自己意向公司,差不多10月底11月份就是最后的阶段,然后就是选择的过程了。

猿辅导一面

面试形式:牛客网
算法:用链表模拟大数加法
oracle跟mysql的区别,隔离级别
慢查询如何定位?如何优化?遇见过什么样的case,怎么解决的?
项目用到了分库分表,分库一定会提升性能呢?什么是冷热数据?优化了什么地方?假如出现了数据暴增,怎么处理?有什么扩容的方法?怎么无感知扩容?怎么做到数据实时一致性?
线程池,核心参数,等待队列满了,来任务立即执行吗?
spring boot跟spring的区别,spring boot是用来干什么的?最大的作用是什么?starter是干什么的?
hashmap1.7跟1.8?优化点?红黑树化为什么是8?退化为什么是6?

美团

一面

面试形式:牛客网
项目介绍,难点,怎么遇到的?产生原因?如何解决?为什么要这样分表?跨库join如何解决?数据量突增怎么解决?
如何解决线上问题?cpu狂飙怎么办?频繁minor gc怎么办?可能造成的原因是什么?如何避免?
数据库 隔离级别,怎么实现的?当前读,快照读?MVCC?
算法:两数之和

二面

  • 面试形式:牛客网
  • 项目难点,如何解决?
  • 分库分表的设计?
  • 分布式事务出现过不一致吗?为什么?怎么解决?有什么方法避免?怎么监控?监控到怎么处理?什么时候需要人工接入
  • 如何优雅的写代码?什么代码算做优雅?什么代码是规范?你们代码规范是什么样的?
  • 如何进行code review?
  • JVM模型,pc计数器什么时候为空?
  • 算法:之字遍历二叉树

三面

  • 面试形式:牛客网
  • 对于大流量,高并发怎么看?你们项目有没有?为什么没有?如果有怎么做?
  • 对于你入职以来的工作你怎么看?
  • 怎么能拿一个好绩效?对于你的绩效你怎么看?
  • 对于中间件怎么看?用过哪些中间件?为了解决什么问题?
  • 对于redis怎么理解?适合什么场景?你用它来干什么?解决什么问题?
  • 你怎么看待我们团队?
  • 你对于自己的规划是怎么样的?
  • 为什么这个时候选择离职?

头条

一面

  • 面试形式:牛客网
  • 特别说明:头条是唯一一家需要你的代码在牛客网那个IDE下AC的公司,直接面试官可能会给你测试样例让你测试,一般给20分钟
  • 算法:找零钱
  • Redis为什么这么快?多路复用io模型?跟多线程对比?select epoll模型?
  • epoll怎么实现的?都用了哪些存储结构?什么时候就绪事件?回掉函数在哪里注册?epoll是怎么使用的步骤?
  • zset数据结构是什么样的?为什么采用跳表?insert一个数据是怎么样的流程?
  • get一个数据是怎么样的流程?
  • 多级索引是怎么更新的?
  • 如何确定一个数据在第几层?
  • 各自的时间复杂度是多少?
  • 你觉得还有什么优化的地方?
  • Redis的高性能是怎么实现的?多主多从?一主多从?各自插入一个key的时候是什么样的流程?
  • 主从复制是什么样的?怎么强一致性?什么情况下不适合?主挂了,各自的选举是什么样的?怎么完成主备切换的?如果主挂了,从没复制完全,会出现什么问题?
  • 什么样的情况下可以使用这样的组群方式?什么样的情况下不适合?
  • raft协议 paxos算法
  • http状态码 300 400 500 499
  • dos ddos drdos 如何避免?怎么预防?怎么发现?利用了TCP什么特点?怎么改进TCP可以预防?服务端处理不了的请求怎么办?连接数最大值需要设置吗?怎么设置?
  • Thrift RPC过程是什么样子的?异构系统怎么完成通信?跟http相比什么优缺点?了解grpc吗?
  • https http1.1 2.0 3.0
  • hashmap如果的确需要很大容量的数据去操作的时候,怎么办?怎么优化?

二面

  • 面试形式:牛客网
  • linux fork子进程 如果在线程中fork会怎么样?如果总共就4g内存,一个进程有10个线程,在线程中fork,能不能fork出来?
  • TCP连接server端跟client端都有几种状态
  • linux作为client端可以最多建立多少个tcp连接?作为server端呢?
  • 建立tcp连接时,如何connect时候阻塞了,那么怎么能不阻塞,去干别的事情?
  • linux怎么监控cpu运行情况?端口连接情况?tcp连接情况?占用了多少内存?
  • epoll 多个请求怎么处理?fd什么时候可读,什么时候可写?epoll模型有没有用到什么队列去等待的,来一个请求* 处理一个吗?能写处理流程的一些伪代码吗?
  • Redis是怎么处理请求的?单机的qps是多少?如果一直用get,你觉得达到qps的顶点,它的限制点在哪里?怎么能够突破峰值qps?怎么用单线程处理的请求?如何解决单机qps达到峰值的问题?
    redis分布式锁,怎么样实现?怎么理解?不用redis可以吗?有什么问题?生产上出现过问题吗?为什么会出现?怎么优化?考虑过zk吗?单机redis分布式锁?集群状态下分布式锁?主从下分布式锁?都是什么情况?redlock怎么理解?
  • 系统怎么算高可用?多部署机器能实现什么?有什么弊端?有什么优势?怎么实现高可用?多部署机器能实现高可用吗?熔断机制是什么?怎么实现?

三面

  • 面试形式:牛客网
  • 算法:两个有序数组间相加和的Topk问题
  • 分库分表 数量级 系统qps 聚合怎么做?
  • 扩容怎么做?
  • redis 淘汰策略?超过最大内存限制发生什么?redis什么时候会慢?redis持久化机制
  • nosql es能解决什么问题?hbase呢?
  • 强一致性?弱一致性?适用什么场合?***web端怎么实现强一致性?怎么设计缓存?

阿里

一面

  • 面试形式:电话
  • 特别说明:阿里面试官在面试之前会介绍他们的团队,这次面试的大纲,感觉狠专业
  • JVM如何和操作系统交互
  • 垃圾回收 回收什么?怎么回收?垃圾回收算法?垃圾回收器?
  • sync和reentrcntlock
  • 分库分表 聚合查询 limit怎么实现 top的实现
  • 不停机扩容?分表避免冷热?不停机扩库?不停机扩表?跨库事务?
  • 线程池 参数 为什么不用fixed?
  • redis 淘汰策略 主从 集群 高可用如何实现?
  • 分布式锁
  • zk实现分布式锁?
  • 算法题:写好发他邮箱 几个线程轮番打印不同花色的扑克牌从小到大

二面

  • 面试形式:电话
  • 分库分表为什么这么设计?数据增长怎么做?怎么扩容?数据不均匀怎么办?冷热数据怎么分离?聚合怎么做?跨* 库聚合怎么做,查询怎么做?跨库分页怎么做?
  • mysql 线上的组群模式?一主多从?为什么这样?强一致性如何保证?为了解决读写分离吗?是为了一主多备吗? 主库crash掉怎么办?从库呢?
  • 分布式事务怎么做?什么原理?怎么实现的?出现过事务不一致性吗?为什么?怎么解决的?
  • 访问请求暴增怎么做?怎么缓解压力?
  • redis分布式锁怎么实现的?可靠吗?有什么问题?redlock能解决吗?为什么?怎么优化?
  • 为什么用redis做?
  • cpu飙升怎么处理?load飙升怎么处理?什么情况可能会遇到上述情况?
  • full gc怎么形成?什么情况会产生这么情况?线上出现怎么排查?.

总结

最后为大家准备了Java架构学习资料,学习技术内容包含有:Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等。有需要的朋友点击这里备注csdn,自行下载即可!,以上内容中,我谈及到的学习方法、学习面试资料,均可以免费分享给大家,希望大家进到自己想进的公司,共勉!
【2年经验】简简单单一个秋招拿下阿里、字节、美团等offer,现在把大佬的面经分享给大家!_第3张图片

还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书一起免费分享给大家!

你可能感兴趣的:(java,程序员,面试干货,分布式,算法,编程语言,面试,java)