【小米】Go岗-开发校招一、二面面经
一面
- 自我介绍
- 深挖实习经历
- TCP/IP 四次挥手
- TCP 拥塞控制和流量控制
- 网络通信双方的流程
- socket 如何标识
- 怎么算 QPS?
- 二进制的原码反码补码
- 程序的“压栈”、“出栈”怎么理解
- 从现在的视角看,你觉得你的项目有哪些不足,技术方面可以如何改进?
- channel 在哪些场景下使用会 panic?
- golang 源码
- go 里的 syncLock 和 channel 的性能有什么区别吗?
- GPM 模型
- 什么情况下 M 会进入自旋的状态?
- Linux 经常使用的命令;awk 用过吗
- 进程、线程、协程的区别
- 手撕代码
二面
- 自我介绍
- 深挖实习项目
- React / Vue 等前端框架的区别
- Golang 内存分配的实现
- Golang 怎么在并发编程中等待多个 goroutine 结束
- Golang slice 不断 append,是如何给它分配内存的
- 介绍一下对缓存的理解
- 内存分配的不同方法的优缺点
- redis 的数据结构
- set、list 等的使用场景
- zset 的原理与使用场景
- Linux 查看一个端口的运行情况
- Linux nginx 日志文件找出现次数最多的 ip
- 手撕代码
- 反问