1

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

 2 years ago
source link: https://studygolang.com/articles/35571
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

itmrtan · 1天之前 · 399 次点击 · 预计阅读时间 1 分钟 · 大约8小时之前 开始浏览    

一面 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

个人的学习方向、学习计划


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK