知乎后端开发实习是很缺人吗? 学go的马上去面试一下
知乎一面(55min)
自我介绍
项目介绍
一致性哈希算法和MQ
为什么使用MQ以及如何保证MQ的消费顺序
mysql索引
进程, 线程, 协程的区别
GMP模型
了解go的内存泄露吗?(不会)
slice和array的区别, 顺便说了一嘴扩容规则
go的一些题
func ap(a []int) { a = append(a, 10) } func app(a []int) { a[0] = 1 } func main() { a := []int{7,8,9} fmt.Println(a) // 789 ap(a) fmt.Println(a) // 789 app(a) fmt.Println(a) // 189 }
json的题我不会, 问下面的代码有什么问题?
type Book struct { Name string Authors []string `json:"authors"` } func main() { book := Book{} s := `{"name":"foo","authors":"bar,ten"}` err := json.Unmarshal([]byte(s), &book) fmt.Println(book, err) }
一个Name字段要加上tag, 另外一个是Authors字段, 不能传入[]string, 要进行重写
type StringList []string
怎么学习的go
怎么优化sql查询慢的问题, 然后还有什么其他解决方案?
加一层redis缓存, redis缓存会出现什么问题
缓存击穿, 缓存穿透, 缓存雪崩
两道easy, 一个合并有序数组, 一个二分查找
知乎二面(20min)
- 自我介绍
- 一道easy股票的最大价格
- 一道sql找出薪水第二大的人
select * from employee order by salary limit 1, 1 desc
- 一道sql薪水有重复, 找出所有薪水第二大的人
加一个distinct 就行, 用子查询