【第四十六期】小米后端开发一二面Golang面经

itmrtan · · 2022 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

一面 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 个人的学习方向、学习计划

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2022 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传