滴滴秋储后端开发实习面试

滴滴秋储后端开发实习面试
最新回答
枫林渡口初相遇

2021-05-29 12:14:05

滴滴秋储后端开发实习面试主要分为一面和二面,一面侧重场景题与少量手撕代码,二面难度提升,涵盖场景题与八股文知识,无手撕代码环节。 以下为详细面试内容:

一面内容
  • 整体特点:不算常规,非纯八股文,有不少场景题。
  • 具体问题

    数据库索引相关

    问明明建立了索引,为什么还是慢,涉及索引失效、最左匹配原则。进一步追问系统自己能否解决最左匹配问题。

    分布式环境下,两个主机读到数据库里的同一条数据的内容不一样,要求分析原因。

    慢SQL怎么解决。

    mysql的InnoDB引擎里索引的数据结构除了B+树还有什么(回答hash,因前面问题影响未及时反应过来),以及hash索引的应用场景。

    聚簇索引、非聚簇索引的区别。

    项目实现相关:给一个项目,让去实现,询问除了CRUD还有什么点要实现。

    Redis相关:redis里的key过期了,让设计一个删除方案并说明怎么实现。

    手撕代码

    反转链表。

    反转第left到第right个节点,需自己写输入输出,到时间没写完,只写了方法,向面试官讲了思路。

二面内容
  • 整体特点:难度飙升,先问入职时间、项目来源,前半部分场景题偏多,后半部分开始八股文,无手撕代码。
  • 具体问题

    数据库与缓存相关

    redis和mysql之间的数据怎么保持一致性。

    保持一致性的缓存删除策略会导致什么问题(提示是大key问题)。

    MySQL事务相关

    mysql的事务是什么,怎么实现。

    当开启一个事务后,在其中插入一个操作,返回这个事务中的数据,会不会出现问题(面试者没听懂,答读写锁)。

    mysql的事务开启后的过期时间默认是多少(面试者未听过)。

    mysql的InnoDB引擎里索引的数据结构相关(一面问过,此处有延伸)。

    并发相关:CAS是什么,会出现什么问题(ABA,自旋,单一变量)。

    Java常用类与数据结构相关

    java中常用的类。

    arraylist、hashmap怎么实现的。

    concurrenthashmap怎么实现的。

    知道哪些数据结构,分别说说应用场景。

    哪些数据结构是有序的,哪些是无序的。