「第三十七期」小米 golang服务端开发 校招 一面二面

Python023

「第三十七期」小米 golang服务端开发 校招 一面二面,第1张

由于没有golang基础,又没什么项目经验,所以上来先代码题:

……后面记不清了

面试官很和蔼,有的问题没回答出来,也一一给我进行了讲解。一度以为自己凉了。过了一个星期后联系我进行二面。

面试官很年轻,大概二十七八,感觉非常亲切。

把我的所有项目都问了一遍,针对一些点对我进行了提问,指出了项目的不足,我虚心受教。

他在找题,顺便问了问我有没有什么疑问?(问面试官旁边的同事们在讨论什么。感觉公司的氛围很活跃,我很喜欢。我讨厌死气沉沉的环境。他表示认同。)

调试了两次,ac。

两次的面试官都非常nice,虽然有些紧张,但是体验很好,聊的非常投机。

使用go语言的好处: go语言的设计是务实的, go在针对并发上进行了优化, 并且支持大规模高并发, 又由于单一的码格式, 相比于其他语言更具有可读性, 在垃圾回收上比java和Python更有效, 因为他是和程序同时执行的.

1. 进程, 线程, 协程的区别, 协程的优势

2. 讲一下GMP模型(重点)

3. Go的GC, 混合写屏障(重点)

4. go的Slice和数组的区别, slice的扩容原理(重点)

5. 讲一下channel,实现原理(重点)

6. 讲一下Go的Map的实现原理, 是否线程安全, 如何实现安全(重点)

7. new 和 make 的区别

8. 说一下内存逃逸

9. 函数传指针和传值有什么区别

10. goroutine之间的通信方式

11. 测试是怎么做的(单元测试, 压力测试)

12. 堆和栈的区别