2022/6/20 滴滴秋储后端实习面经:智能中台部门
笔试过后几天,hr发邮件约面试,约的是6.20号下午16:15一面开始。
流程大概是:一面结束后,如果通过接着就二面。我的是中间间隔了15分钟,一面结束5分钟就给我发了二面的邮件。
一面大概1小时左右
- 自我介绍,主要介绍了之前的实习,和项目。面试官对我的实习很感兴趣,之前有2段实习经历。
- 接下来介绍实习做了什么,介绍了项目,这个大概问了20多分钟。
- 问项目请求的的QPS,TPS。相关参数值也和电脑性能有关。
- 问做的项目的难点,我做的是支付的项目,和权限的项目,支付那一块的比较难。
- 问了微信支付怎么实现的,端口调没调通。
- JVM的内存模型,元空间MetaSpace介绍下
- 垃圾回收算法(详细说),垃圾回收器有哪些?
- 单线程的回收器和多线程的处理器应用场景?
- G1和CMS垃圾回收器之间的区别?
- 标记-整理算法有没有内存碎片?
- 又聊到了QPS,QPS达到5200+,比较大,着重分析了这个。
- 说下对Spring的理解,尽量说的广,深。
- SpringBoot底层自动配置原理,详细说。
- SpringIOC底层源码看过没。看过,其实是一个Map
- Spring怎么解决循环依赖的问题?(我看过源码,三级缓存)
- 解决循环依赖的Map中的Key是什么,BeanName
- Docker和虚拟机之间的区别? 其实虚拟机需要宿主机
- Docker有什么缺点?
- synchronized关键字用在什么地方?原理是?
- 写算法,问我leetCode做了多少了,题目比较简单,设计一个死锁,写一个单例
反问:结果什么出来,技术栈,业务。
大概5分钟后,hr发邮件二面。
二面大概1个多小时
- 介绍下我自己,还是问了实习中做了什么?之前的实习学到了什么?
- 项目中问到了支付的接口,怎么避免重复支付?
- HashMap,自定义设置大小为100,会扩容吗?会,源码中是16,加载因子是0.75,12。
- ArrayList和LinkedList之间的区别?
- 说下对Spring的理解,我说了很多,一直说,直到面试官说,可以。
- Redis怎么解决缓存和数据库的一致性?我说了一些解决方案,重点说了下延时双删策略。这个题和场景有关,分类讨论。
- 先删除缓存,再更新数据库,再把数据刷到缓存里面可以吗?会引起什么问题?缓存击穿,解决策略。缓存里面旧的数据不应该全删,应该留一些,过滤数据。
- 在数据库不启动的情况下,缓存里面怎么添加数据?缓存预热。
- MQ的有什么作用?解耦,异步,削峰。分别给了场景说了下
- 说下对Spring的理解,重点说了下IOC。
- 数据库的索引,索引分类
- 组合索引,a,b,c都有索引,where a and c,a,c都使用索引吗?where b and a,都有使用索引吗?
- 为什么where a and c c没有使用索引。其实就是最左匹配原则。
- 最左匹配原则说下?最左匹配原则怎么判断从左到右的?其实和索引底层有关了,底层B+树
- B+树说一下数据结构?其实就是看叶子结点,和index。
- 一个SQL的执行流程? 先连接,使用连接器,查询缓存,优化器,分析器执行器,说下每个的作用,然后加载到Server里面。
- 看了我的博客,访问量25w+,说我习惯很好。对技术兴奋,比较积极。
接下来就是做题了。大概是求的最长不重复的子序列长度。写的比较快。
然后二面的面试官对我做了整体评价。
基础好,有项目,动手能力好,有大厂实习经历。
我问了下什么时候出结果,他说很快,2-5天左右。
有所期待,许愿Offer。