4.11 美团二面
📍面试公司:美团
📍面试部门:核心本地商业-基础研发平台
👜面试岗位:软件开发工程师(后端方向)
📖面试问题:
- 自我介绍
- 项目介绍,遇到的难点等
- 为什么要使用ES,MySQL不能解决吗?用了哪些分词库?
- ES有哪些节点?ES的主节点有多少个?
- ES的写入流程是什么样的?发请求首先是发到哪个节点上的?如果发起一个写请求,写请求都会到主节点上吗?只要写一个主分片成功后,请求就结束了吗?副本分片是否需要保证完全写入?ES是最终一致性还是强一致性?(这里被问烂了)
- ES的分页了解吗?如何实现深度翻页?
- MySQL中的B树和B+树有什么区别?它们分别在什么时候使用?为什么B+树中间节点不存数据,占用空间会少?
- 假如给100个数字,分别构造B树和B+树,并放入内存中,那么查询的复杂度是多少?
- 聚簇索引和非聚簇索引是什么?他们分别用在什么场景?
- 回表是什么?非聚簇索引一定会回表吗?
- 脏读和幻读是什么?MySQL的隔离级别是什么?它能解决脏读和幻读吗?
- 间隙锁锁住的时候还可以读吗?间隙锁可能会造成死锁吗?如果锁住很大范围的间隙,怎么解决性能上的问题?怎么解决间隙锁之间的锁冲突?
- HashMap的基本原理是什么?在什么时候进行resize?
- HashMap扩容的时候,是在原数据结构上扩容还是申请一个新的内存块?在复制过程中,HashMap如何处理添加和查询数据?
- HashMap是线程安全的吗?为什么线程不安全?
- 线程安全的数据结构有哪些?
- 手撕环节,目前还没有在网上找到题号
🙌面试体验:
感觉问的很深, 有一些很细节的内容还是不太熟练,加上ES的了解也不够多,被问的汗流浃背了