【字节跳动】Go岗-后端高频面试题
一面
- 介绍下go的chan,chan可以做什么
- 你们的项目如何实现限流器,请用chan实现一种限流器,也可以不用chan实现
- 线程进程协程区别
- go协程好处
- gmp模型
- 算法题一个数字比如452484515124845157515,可以去除n个数(比如1234去掉3个数 最大值就是4),求最大值
- 智力题 两个人射击,每个人射中的概率都是二分之一,n轮后求第二个人射中的概率
二面
- 说说dockerfile?(因为我简历写了docker)
- mysql的常见引擎区别,mvcc机制是干嘛的
- 按照场景写几个常用sql语句,比如去重复
- mysql索引失效场景
三面
- 项目介绍
- redis各种数据结构可以做什么
- redis的持久化方式,区别?持久化过程时如何保证不会出现新的写覆盖数据?
- redis主从复制?
- 系统设计:如何实现排行榜?我的回答提到了分布式zset然后汇总,面试官要求实现这个算法
四面
- 项目介绍
- 有没有读过redis源码
- 缓存该怎么使用?如何保证一致性?
- 并发场景下设计并实现一个hashmap,(隐含要求扩容不阻塞)
- 算法题:会议有时间段,有很多会议,求最少需要多少会议室?
总结
三面体验很差, 先是面试官迟到,后来面试官说中途离开10分钟,结果离开了一小时还没回来,然后我找到hr,发现他去开会去了,hr说这次面试结束。 第一次遇见这样面试的。三面后是hr面,感觉hr很傲慢,可能是我要的有点多,又加了一面技术面四面。