首页 > 小米后端开发一二面面经
头像
ShowMeTheCodee
编辑于 2020-09-17 11:52
+ 关注

小米后端开发一二面面经

Golang 开发岗。

一面 1h

  • 计算机组成是哪五个部分?(运算器、控制器、存储器、输入设备和输出设备)
  • TCP/IP 四次挥手
  • TCP 拥塞控制和流量控制
  • 网络通信双方的流程(服务端:bind、listen、accept;客户端:connect)
  • socket 如何标识
  • 二进制的原码反码补码
  • 计算机中的文字乱码,字符集和字符编码的含义、如何区分?(文章
  • 程序的“压栈”“出栈”含义?
  • 项目/实习经历
  • 从现在的视角看,你觉得你的项目有哪些不足,技术方面可以如何改进?
  • channel 在哪些场景下使用会 panic?(关闭 / 写入一个已经关闭的 channel)
  • golang 源码有了解吗?
  • GPM 模型
  • 什么情况下 M 会进入自旋的状态?(M 是系统线程。为了保证自己不被释放,所以自旋。这样一旦有 G 需要处理,M 可以直接使用,不需要再创建。M 自旋表示此时没有 G 需要处理)
  • Linux 经常使用的命令;awk 用过吗
  • 进程、线程、协程的区别
  • go 里的 syncLock 和 channel 的性能有区别吗?

二面 1h

  • 自我介绍
  • 实习经历细节
  • 实习中最大的挑战点有哪些?
  • 自己做过压力测试吗?关注哪些指标?
  • 怎么算 QPS?
  • React / Vue 等前端框架的区别
  • Golang 怎么在并发编程中等待多个 goroutine 结束?
  • 内存分配的不同方法的优缺点(固定分区、动态分区、页式分配)
  • Golang 内存分配的实现
  • Golang slice 不断 append,是如何给它分配内存的?slice 如果分配的 capacity 是 10,那当容量到多大的时候才会扩容?8、9、10?
  • 介绍一下对缓存的理解(系统层面(L1、L2、L3)、网络层面(浏览器缓存)、服务器层面(redis))
  • redis 的数据结构;set、list 等的使用场景;zset 的原理与使用场景
  • Linux nginx 日志文件找出现次数最多的 ip(sort、uniq、awk)
  • Linux 查看一个端口的运行情况
  • 用过定时任务吗?
  • 算法:数组找 top k,时间复杂度分析(快排、堆排)
  • top k 有没有 O(k) 的方法?(我说数组大小是 n,那肯定至少遍历一次 O(n) 吧。面试官:和桶排序的思路差不多)
  • 快排的时间复杂度是 O(nlogn),你有哪些优化时间复杂度的方法吗?比如空间换时间(不会)
  • 算法:实现 LRU
  • 个人的学习方向、学习计划

更多模拟面试

全部评论

(7) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐