美团 一面
- 自我介绍
- leetcode141 环形链表,判断是否有环路
- 延申leetcode142 环形链表2,找到入口位置
- 判断一个sql(左右模糊查询)能否命中索引
- 为什么左右模糊不能命中索引
- 如何优化这个sql(左右模糊查询)
- 全文索引底层怎么实现的
- 建立分词后,如何进行快速的模糊检索
- 分词用的什么数据结构
- 跳表的时间复杂度,哈希表呢
- 哈希表有什么问题
- 说一下MySQL的索引
- 什么是聚簇索引、非聚簇索引
- 事务隔离级别
- InnoDB如何实现可重复读
- 死锁是什么,如何解决死锁
- 拷打项目
- 你觉得科研中什么能力比较重要
美团 二面
- 自我介绍
- 拷打项目
- socket、TCP/IP 的关系
- 输入 url 的到浏览器显示网页的过程
****反问
京东一面 (30min 京东微服务中间件开发部门)
- 自我介绍
- 实习项目中确保结果准确性
- 实习项目上游数据有问题怎么办
- Golang new 和make的区别
- 为什么多协程优化,不使用协程呢?
- 实习项目过程中还有什么可以优化的地方
- 微服务的优势,为什么用微服务
- 怎么确保线程安全
- 信号量和锁的区别
- 你有什么问题吗?
360 一面
- 自我介绍
- 实现LRU算法
- 这个lru算法用在生产环境会出现什么问题
- 如果十万个线程同时put,会出现什么问题
- 如何控制并发,加什么锁,读写锁还是互斥锁
- 进程、线程、协程
- 程序从加载到运行的过程
- 为什么线程消耗比协程大,具体体现在哪些方面
- 生产中哪些服务用的 进程、线程,为什么要这么做,有什么好处(今天第二次问到)
- nginx master-worker进程、进程与redis 进程、线程
- 数据库事务,隔离级别
- 各个隔离级别怎么实现的,原理
- RR能解决幻读吗,为什么
- MVCC
- 数据库中的锁
- 乐观锁、悲观锁适用于什么情况,并发,读多写少
- 分布式锁
- zookeeper、mysql、redis 、etcd 怎么实现分布式锁,各有什么优缺点,生产中一般用那个
- zookeeper原理,怎么保持高可用
- tcp三次握手、四次挥手
- timewait、closewait出现,怎么处理
- tcp调优相关参数
- 拥塞控制算法、滑动窗口、零窗口报文
- http1.0 - http3.0 改进,优缺点
360 二面
- 说说 Linux 常用操作,ps 是干嘛的
- Go map 为什么是无序的?
- MySQL 索引分类,索引的优点和缺点
- 分库分表
- Cookie 和 Session 的区别和应用,分布式 Session 的实现
- TCP三次握手/四次挥手
- Redis 的数据类型及其数据结构,Bitmap 是什么
- Redis 的雪崩效应 ,是什么,怎么解决
- 线程,进程,协程区别
- 算法:用 Go 手撕快速排序