【社招】蚂蚁、字节、快手、滴滴、携程、酷家乐、货拉拉面经

一、前言

楼主的基本情况

19年7月份毕业。在美团的某部门做java后台开发工作。7月份找了一次工作,基本一面挂,12月份又开始找,这次面了蚂蚁、字节、快手、滴滴、携程、酷家乐、货拉拉、叽里呱啦、比心、得物等公司。拿到了字节、快手、携程、酷家乐、货拉拉、叽里呱啦的offer。蚂蚁也面到3面(面试都过了,但是还是把我挂了),滴滴面完hr面。在此分享下面经。

为什么要换工作

业务相关性,从进入部门到现在基本没有写过什么代码。产生的一个问题就是:2020年的每天都过的非常不安。
因为自己当初选择美团,就是觉得美团技术强,可以学到很多东西,但现实好像跟我想的差别过大。作为一个程序员,在毕业一年多的时间里尽然没有写过什么代码。同时由于部门环境复杂,各种领导,导致做事很不容易,每天都觉得心累。

找工作经历

楼主2020年8月份找过一次。2020年12月又找过一次。如果说没写什么代码只是让我自己心里感觉不安的话,7月份找工作失败的经历,则让这种不安完全爆发。楼主8月份大概投了百度、快手、字节、小红书以及远景智能这些公司。几乎都是一面挂。找了大概一个月后,9月份的时候几乎崩溃。因为校招的时候找工作特别轻松,当时的感受就是:我这工作一年到底经历了什么为什么这么菜。

自我反省

9月的时候,在经过一个多月的极度崩溃后,开始自我反省。确实由于自己工作业务关系,写不了什么代码。所以自己业余时间就做个完整的项目来写代码。同时发现自己的基础知识太过薄弱,数据库、java、mq、算法、场景设计等方方面面都不太好。既然现状无法改变,那自己只能在基础上多下功夫。

行动

  • 项目:10月开始,自己找了个项目,将市面上主要框架dubbo、zookeeper、redis。项目中使用到的Rabbitmq,数据库都用上。通过项目来了解基础中间件。
  • 算法:刷题:LeetCode hot100,hot200等。基本每天保障能做2-3道题。

二、面经

由于面试的公司太多了,大部分具体面经都忘记了,但是总结下来也就那么几类吧。如果有想要找工作的同学,可以在投简历前,试着问问自己,能否回答上来,再去投简历吧。

数据库mysql:

1、数据库用过哪些?
2、mysql引擎有哪些?
3、这些引擎有什么区别?
4、InnoDB用什么存储的?为什么要这么存储
5、B+树有什么特点?
6、索引有用过吗?如何进行索引优化?
7、回表、索引下推、覆盖索引等概念?如何应用。(有可能基于此,给你出个实际题目,让你建立索引,并问你为什么?)
8、mysql事务,ACID,事务隔离级别?
9、RR级别下是否会出现幻读?为什么?通过什么机制来实现的?MVCC?行锁,表锁,间隙锁,next-key lock? MDL,DDL?
10、@Transactional 注解在什么情况下会失效

基本如果把这些问题都搞懂的话,数据库的问题就问不到你了。在此推荐极客时间上,丁奇的Mysql45讲。我在找工作前基本看了两遍。

MQ:

现在互联网基本都用kafka或rocketmq。但是由于我们业务的特殊性,用的是Rabbitmq。但是mq的原理都是通的,只是支持的特性不一样。在使用mq的时候,几乎都会遇到相同的问题,所以需要根据你熟悉的mq,把这些问题想清楚,搞明白。推荐一个好用的github地址:https://github.com/doocs/advanced-java
1、mq是什么
2、为什么要用mq
3、mq如何保证消息不丢失
4、mq如何保证高可用
5、mq如何保证消息的顺序
6、mq如何保证消息不重复消费

Redis:

基本面试redis是必问的。之前我只是用过,但是对于redis的原理还是没有系统了解过。在此推荐极客时间上,蒋德钧的《Redis核心技术与实践》
1、项目中redis怎么用的?
2、redis如何保证高可用?
3、缓存击穿、穿透、雪崩的解决办法
4、redis的底层数据结构有哪些?时间复杂度怎么样?
5、redis为什么快?为什么是单线程?
6、String的底层如何实现,set呢?redis如何扩容。RDB,AOF。各有什么特点?

java基础:

java基础基本都是些八股文了,所以需要好好复习下,基本其他所有的面经,都会涉及一点。
1、synchronized和lock的区别,实现原理、锁升级场景、AQS如何抢占?
2、Object中的方法有哪些?equal和hashcode的区别,为什么会有这两个方法。wait,notify,notifyall锁住的是什么?
3、java的泛型擦除了解过吗?(字节特别喜欢问这个)
4、hashmap,concurrenthashmap,hashtable,arraylist等实现
5、线程的状态有哪些?有哪些方法可以让线程变成这些状态?
6、线程池,如何使用(基本回答都是指定队列,避免OOM)?核心参数有哪些?(必问)
7、类加载器,双亲委派模型有什么好处?可以不用吗?

jvm:

jvm基本也是都会问的,所以推荐把周志华的《深入理解java虚拟机》好好看看。
1、jvm都有哪些部分构成?哪些是线程私有的哪些是公有的。
2、jvm的内存模型,内存屏障
3、垃圾回收算法?垃圾回收器。
4、类加载过程。
5、volatile关键字。

大数据题:

一般一二面都是问些项目难点、以及技术基础。三面都会涉及一些大数据题,看你有没有真正掌握。还是推荐刚才的那个https://github.com/doocs/advanced-java地址。上面有常见的大数据问题。
1、1Gb数据,如何找出其中的top10.
2、1Tb数据排序。
3、1TB数据找出其中出现频率最高的词。
等等。但是万变不离其宗。基本就是归并,hash,排序加bitmap来解决。

项目相关:

其实社招大部分的公司都不面算法的,大多看项目,所以项目这块需要同学们好好准备。把项目的难点、项目的架构项目解决了什么问题在心里要整理清楚。好的面试官会根据你的项目难点要点,穿插着对上面一些基础组件对你发问。所以项目这块一定要好好准备。而我自己基本没有写什么代码,所以项目这块比较吃亏。还有一点需要强调的:不要觉得自己做的项目没什么技术含量,好好思考,好好总结总能想到那么一两个难点。然后面试的时候特意强调这。让面试官基于此对你发问。

场景题:

社招比较喜欢问这个,特别是字节的。通过一些场景来考察你的设计能力。一般需要对一些常用的中间件比较熟悉,确实有过一些实际经验,这样的题目才能回答的比较好,或者多看看他人的面经,对涉及到的场景题好好思考研究。
1、设计一个限流工具会如何设计?
2、实现一个mq如何实现
3、设计一个aop实现如何做

spring相关:

基本业界做业务系统的,spring已经统一天下了。spring的实现也基本是考察基础的一个重要方面。在此推荐一个博客:上面的文章都写的很好:https://javadoop.com/
1、spring的ioc和aop是什么,如何实现
2、bean的生命周期
3、循环依赖如何解决
4、springboot如何启动的?为什么不需要spring那么多的配置。

设计模式:

设计模式主要考察下你平时写代码的有没有思考过一些代码的优化。常见的模式很多想,像:单例,工厂、简单工厂、模板、观察者等。这个找其中的一两个好好了解就好了
然后平时的时候,思考下如何在项目中应用的。一般面试管的问题就是:设计模式有了解过吗?如何使用的。由此可能还会问问:面向对象的设计原则,有哪些?各是什么含义等。

三、工作感受

楼主能想到的问题大概就这么多了。如果上面提到的东西你都能回答个***不离十,基本基础这块是没啥问题了。写这个面经的目的主要是想帮助大家建立一些信息,不要因为一时的工作不顺,或者挫折,就丧失了信息。去年9月份的时候我确实很崩溃。工作后和在学校的反差真的大的让我有点受不了。不过最后结果还是好的。
总结下工作一年多的感受吧。工作中确实要有明确的目标感:我自己感觉过的不如意,除了跟工作环境业务的关系外,确实感觉一年多时间里自己不知道想要什么,目标是什么。所以在工作中很被动吧。
#社招##滴滴##字节跳动##快手#
全部评论
校友加油,进去之前好好调研部门还是有必要的
1 回复 分享
发布于 2021-02-05 11:20
点赞 回复 分享
发布于 2021-02-04 21:38
华科还能被一面挂啊,裂开来,恐怖如斯
点赞 回复 分享
发布于 2021-02-04 22:46
点赞 回复 分享
发布于 2021-02-05 10:12
安利下hll 965生活值得拥有
点赞 回复 分享
发布于 2021-02-05 10:37
我感觉看过你的博客😂
点赞 回复 分享
发布于 2021-02-05 12:00
给lz重排了一个版
点赞 回复 分享
发布于 2021-02-05 12:29
楼主的项目哪找的呀,面试的时候是说这个项目是公司的还是自己私下练手的呢,我一直不懂要不要太老实😂
点赞 回复 分享
发布于 2021-02-05 13:21
先🐴了再说,和楼主一样19年7月入职美团,也在看机会
点赞 回复 分享
发布于 2021-02-05 17:18
mark
点赞 回复 分享
发布于 2021-02-05 17:29
楼主裸辞找的工作吗 如果不是裸辞 哪有时间去面试啊
点赞 回复 分享
发布于 2021-02-06 00:44
麻烦问下面到hr面都有可能拿不到offer么😥
点赞 回复 分享
发布于 2021-02-06 23:10
楼主你是边工作边复习?
点赞 回复 分享
发布于 2021-02-08 22:02
蚂蚁为啥挂了
点赞 回复 分享
发布于 2021-02-28 10:07
蚂蚁hr面过一般多久才能收到电子offer?
点赞 回复 分享
发布于 2021-03-26 23:14

相关推荐

一面(10-17,40min)1. 自我介绍2. 对ES6语法的了解3. 箭头函数的this指向4. A对象声明了一个箭头函数方法,在B对象访问时,它的this会指向谁???听不懂,瞎说了一个A。。。然后面试官就是很长时间的沉默5. 对Promise的了解6. 对任务执行机制的了解7. 对浏览器存储的了解,比如sessionStorage等等8. 没事,你后面如果用到IndexedDB会对它有更多的了解的9. vue生命周期10. 仔细说说各个生命周期在这个阶段都完成了什么11. destroy的事件监听器是自动移除的?12. 组件通信的方式13. VueX的组成结构14. 哪个是提交?哪个是修改?哪个是执行异步操作的?15. 用过插槽吗?讲一下16. 说说Vue3相对Vue2的改变17. 开发移动端或PC端时有没有做过性能优化18. 当时具体怎么设计这个虚拟列表的19. 这个列表大概多少项20. 开发移动端有没有遇到兼容性的问题21. 样式兼容性问题怎么解决22. rem和em的区别23. 你在开发小程序用的是什么单位?没用过rpx吗?24. 讲下Echarts是基于什么实现的?SVG有了解过吗?Canvas了解吗25. 讲一下居中方案26. 未来的学习计划27. 目前有没有签第三方28. 反问二面(10-22,50min)1. 自我介绍2. 为什么选择前端?学习前端的方式3. 还在实习吗?4. 实习项目面向的客户是谁?主要有哪些功能呢?5. 微前端的框架6. 私有化数据上传、yaml档案下载的流程7. 讲讲关于镜像、docker、k8s的理解8. 你们后端用的是什么语言?9. 你阐述的是如何使用国际化,但是你对国际化的原理有了解吗?10. 你的xx业务中的复杂表单为什么复杂?11. service层怎么优化统一管理的?12. 你提到虚拟列表优化,渲染900个项时会卡死,为什么会卡死?13. 你这个小程序懒加载具体怎么实现的?14. 好好的为什么迭代之前的那套体系?说说具体的原因。迭代过程中之前的用户数据有没有遇到问题15. 重排重绘16. 事件委托17. 跨域18. let、const、var19. 是否了解React,看你的技术栈没有这方面的知识(应该回答正在学习,尽可能地介绍自己目前了解的程度,而不是只是回答我目前只看了一点点文档就没了)20. webpack、vite用过吗?说一下webpack的核心21. 大语言模型的原理?22. 研究方向是什么?多模态吗?有没有做过微调之类的操作?23. 反问#数字马力##数字马力面经##前端#明天就是11月了,下个月0会变成1吗?
查看49道真题和解析
点赞 评论 收藏
分享
55 314 评论
分享
牛客网
牛客企业服务