19届双非本科菜鸡寒冬跳槽面经分享(蚂蚁、滴滴、快手、图森、猿辅导)

371 篇文章 12 订阅
243 篇文章 10 订阅

背景: 19届双非本科,计算机科学与技术专业,目前主要是golang,广告方向,偏技术方向

准备过程: 12月初开始 修改简历,花了两周多点的时间看了看 面经和左神的算法题

最右(12月中 后台开发  offer)

算法相关: 1. 层序遍历 二叉树 2. 判断 二叉树是否是镜像 二叉树,3.堆排

中间件: kafka丢失消息和不重复消费, redis底层数据结构实现,aerospike和 redis的区别(架构、使用等)

数据库: mysql索引, mongodb和mysql索引的区别,给了条sql语句问索引怎么构建

golang: 切片和数组、map、gc、gpm调度模型等

项目: 项目详细过程、高并发限流、熔断等等等等

其他:时间太久忘了,大概还记得这几个吧🤣🤣🤣🤣🤣


知乎(12月中 搜索引擎研发 一面挂)

算法: 链表翻转

基础:mysql索引相关, redis底层实现,golang基础,你们广告检索系统怎么做的,底层用的什么数据结构......

最后面试官说你们这个搜索和我们这个不太一样,然后就挂了


探探(12月底,二面挂)

算法:

1. 对一个 链表进行 排序,

数据库:mysql引擎知道哪些,有哪些索引,底层是怎么实现的

中间件: redis底层实现(这个地方两面都问了,问的有点深入)

golang相关

最后挂了,感觉也是答的不太好


猿辅导(12月底  斑马服务端offer 3+1)

内推简历免筛选

一面(12.23  50min):

1. 自我介绍 项目相关

2. redis最常用的数据结构,说一下底层实现原理

3. 项目详细描述和提问

4. 算法,给n个数 1-n,随机n次,将这n个数输出

5. java和golang的一些共同点以及区别

6. 线程和协程的区别

7. io多路复用,select\poll\epoll的实现和区别

8. 三次握手和四次挥手

9. 长连接和短链接(怎么实现的、区别以及应用场景)

提问环节:介绍了部门的一些情况和技术栈

第二天早上hr通知面试通过

二面(12.25 45min):

1. 自我介绍 项目相关

2. kafka重复消费和丢失消息的场景以及解决方案

3. 三次握手四次挥手

4. 算法:计算 二叉树所有左叶子节点的和

5. 算法:n对括号输出所有合法的情况

6. 项目相关

7. 提问

面完半小时hr反馈面试通过约了三面,疫情原因约了元旦后

三面(1.6 40min):

1. 自我介绍

2. 问 项目相关

3. 算法: n个有序的数组合并成一个

4. redis使用和原理

5. 提问

面完下午hr通知面试通过,约了hr面


滴滴(offer 服务端研发  2+1+1)

一面(1.4  1h10min):

1. 自我介绍

2. 项目

3. 协程和线程的区别,内核态和用户态

4. GPM调度模型

5. b-tree和b+tree

6. 算法: 二叉树中序遍历,递归和非递归两种方式

7. kafka如何保证消息有序,消息的重复和丢失

8. i/o多路复用 select/poll/epoll

9. 三次握手和四次挥手

10. http和https的区别,https建立连接的过程

11. http1.1 和 http2.0的区别

12. 缓存和数据库一致性的问题

13. sync pool的实现原理

14. 有了解过php吗

提问环节

1h后hr联系面试通过

二面(1.5  40min):

1. 自我介绍

2. 项目相关以及为什么想要换工作

3. hash冲突解决办法,有什么弊端

4. map里面解决hash冲突怎么做的,冲突了元素放在头还是尾

5. 10亿的url去重怎么做

6. redis zset怎么使用的,底层怎么实现的,适用于什么场景

7. 你这边最早能什么时候入职

...

后面全程聊天了

下午hr通知面试通过

滴滴后面都是hr面


蚂蚁(面试还在流程中...)

一面(1.3 45min):

先做了一道算法题: 单链表找到中间节点

1. 自我介绍

2. 详细介绍项目和提问

3. java和golang的一些通用的gc,内存,数据结构等对比

4.hashmap是线程安全的吗,会有什么线程安全问题

5. 提问,说完反馈面试通过

二面(1.5 1h10min):

全程围绕项目在问

最后比较详细介绍了部门做的一些事和一些面试反馈


快手(1月10   3+1+1)

一面(1.10 35min)

1. 自我介绍

2. 聊项目

3. 算法: 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。

4. golang和java的一些共同点和区别

5. 结束,面试官直接通知后面有二面🤣
 

二面(1.10  65min)

1. 自我介绍

2. 项目相关

3. jvm调参(直接说不会,主要语言用的golang)

4. while(tree) {sleep(1)}  这个会有什么问题

5. sleep底层实现原理

6. io多路复用 select/poll/epoll

7. redis怎么使用的,用了哪些结构,了解过实现原理吗(zset, hash),用过哪些api

8. golang协程介绍,包括实现、调度、和线程对比、内存等

9. 线上问题一般怎么排查,比如oom

10. 算法: 手写LRU,结构,增删改查

结束

三面(1.11 25min)

1.自我介绍

2. 为什么要换工作

3. 实现一个线程池,说原理和数据结构

4. 可重入锁

5. 算法: 层序遍历二叉树

6. 算法: 链表翻转,要求用java写🤣

7.对未来工作有什么考虑和想法

hr面


图森未来(1月中  3)

一面(1.8 60)

1. 自我介绍

2. 聊项目

3. 算法:

输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。

输入: array = [-2,1,-3,4,-1,2,1,-5,4]

输出: 6

解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。

4. 算法: 

图森卡车进行的是仓到仓的运输工作,目前各个地区的仓库以及仓库间的高速公路组成了一棵树,卡车需要能够从任意一个仓库运输到另一个仓库。

卡车通过相邻仓库之间的高速公路需要用 1 个单位的油,求油箱需要设置多大才能满足运输要求(运输途中不能加油)

5. 算法: 

给定 n 个算法训练任务,每个任务都要独占机器 1 小时。原来第 i 个任务应在第 i 小时开始做。由于突发情况停电了 k 小时,所有任务都要推迟,即时间区间从原来的 [1, n] 改为 [1+k, n+k] 小时。

但是第 i 个任务每推迟一小时就会损失 cost[i]。现在要对这 n 个任务重新调度顺序,要求不能原来开始时间更早,求最小的损失。

二面(1.11 1h10min)

1.自我介绍

2. 项目  

3. sync pool底层实现

4. docker和虚拟机区别

5. k8s底层原理

6. linux文件系统

7. 网络七层模型和五层模型

8. 数据库索引

9. linux命令

10. 三次握手和四次挥手

11. http和https区别,https建立链接过程

12. http状态码相关

13. redis数据结构和底层实现
 

三面(1.12 1h10min)

全程聊项目


最新2021整理收集的一些高频面试题(都整理成文档),有很多干货,包含mysql,netty,spring,线程,spring cloud、jvm、源码、算法以及最新的简历模板等学习资料,也有详细的学习规划图,面试题整理等,需要获取这些内容的朋友扫描下方二维码免费获取:暗号:CSDN

å¨è¿éæå¥å¾çæè¿°

看完三件事❤️

如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:

  1. 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。

  2. 关注公众号 『 java烂猪皮 』,不定期分享原创知识。

  3. 同时可以期待后续文章ing🚀

  4. .关注后回复【666】扫码即可获取学习资料包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值