字节测开二面
字节测开二面(50min)
-
自我介绍
-
go的组合和继承的比较
-
go的Slice结构体
type Slice struct { Point *unsafe.Point Len int Cap int }
- 写一个channel死锁的代码
func main() { ch := make([]int) // 无缓冲通道, 同步通道 ch <- 100 // 死锁 num := <- ch fmt.Println(num) } func main() { ch := make([]int, 2) ch <- 100 ch <- 200 ch <- 300 // 死锁, 大于缓冲容量 num := <- ch fmt.Println(num) }
-
开始问项目
-
你怎么实现这个倒计时的功能呢? (我会在秒杀的商品里面加入一个字段是秒杀开始字段, 然后前端发起请求获取这个时间, 和系统时间进行比较来实现)
-
现在如果那个用户, 他改了系统的时间呢?你应该怎么办
-
限流器模型 (滑动窗口, 漏桶, 令牌桶)
-
一致性哈希算法, A服务器挂了, 大量的流量打到B服务器上, 造成雪崩, 你应该怎么解决(参考redis雪崩)
-
MQ的主要作用
-
对于项目是如何测试的呢?
-
算法 二叉树的层序遍历 (以及说出测试方法), 说说时间复杂度和空间复杂度O(N)
- 反问