2023 最新 Go 面经:百度滴滴小米 360 小红书展盟优咔科技......
前言
本文整理了 2023 年最新的 Go 面试经验:涵盖了百度、滴滴、小米、360、小红书、展盟和优咔科技等知名公司的面试题目。
题目涉及 Go 语言基础知识、数据库知识、消息队列、Kubernetes 相关知识、服务治理与微服务架构、Docker 知识、监控和度量、算法与编程、自我介绍、职业规划等。
以下面经来自我们 拿到多个Offer的好友 分享。
1. Go 语言基础
Go 的垃圾回收机制?GMP 模型?(展盟,百度,滴滴,小米)
Golang 如何优雅关闭一个 channel?(展盟)
Go 里面的 map 是怎么决绝 hash 冲突的?(展盟)
slice 是引用传递还是值传递?slice 参数传递过去,修改之后,外部变量是否也会被修改?(展盟)
Go 读写锁的概念?读的时候会影响别人的读么?读优先还是写优先?(展盟)
context 的应用场景?(展盟)
select 的作用?项目中怎么使用的?(展盟)
数组和切片的区别(柯莱特-外派小红书,优咔科技)
map 是否是线程安全的,如何在 Go 中使用线程安全的 map(柯莱特-外派小红书,优咔科技)
sync.map 的原理(柯莱特-外派小红书,优咔科技)
Go 数据类型有哪些?(优咔科技)
如何判断两个 interface{}相等?(优咔科技)
Go map 中删除一个 key 的内存是否会立即释放?(优咔科技)
init()方法的特性(优咔科技)
switch-case 语句,强制执行下一个 case(优咔科技)
encoding/json 包解码通过 HTTP 请求接收的 JSON 数据时,它会默认将所有数字解析为 float64 类型(优咔科技)
Go 里面的类型断言?(优咔科技)
Go 静态类型声明?(优咔科技)
sync 包使用?(优咔科技,360)
gin 的并发请求、错误处理、路由处理(优咔科技)
CSP 并发模型(百度)
逃逸分析的介绍?逃逸分析怎么看(-gcflags = "-m -l")?工作中是否用过逃逸分析解决问题?(百度)
对关闭的 channel 进行读写 channel 会发生什么?对关闭的 channel 写为什么会 panic?(百度)
字符串转 byte 数组会发生内存拷贝么?为什么?(百度)
如何实现字符串转切片无内存拷贝(unsafe)?(百度)
Go 语言 channel 的特性?channel 阻塞信息是怎么处理的?channel 底层实现?(360)
2. 数据库知识
MySQL 的事务隔离级别,可重复读是什么样的概念?(展盟,360)
MySQL 联合索引最左匹配原则(展盟)
MySQL 的慢查询是怎么解决的?(展盟,360,小米)
Redis 遍历 key 的命令,可否用 keys 命令?(展盟)
MySQL 的优化?(优咔科技)
MonGoDB 和 MySQL 的区别,MonGoDB 的索引了解过么?(优咔科技)
Redis 的数据类型?(优咔科技,360)
Redis 持久化的方式(优咔科技)
MySQL 的索引,聚簇索引和非聚簇索引的区别?索引是用什么实现的(b+ tree)?(360)
MySQL 事务隔离级别(RU/RC/RR/S),可重复读是怎么实现的?幻读是怎么解决的?(360)
Redis ZSet 底层是怎么实现的(压缩链表、跳表)(360)
Redis 的持久化机制?RDB 的原理(save、bgsave)?(360)
3. Kafka
kafka 同步租户时如何防止信息丢失(事务:commit、autocommit)(展盟)
4. Kubernetes 相关知识
介绍 istio 相关概念(展盟,优咔科技,360)
k8s 的 service,集群用的什么网络插件(calico、flannel)?(展盟)
聊聊云原生是什么?(优咔科技)
常见的容器运行时(优咔科技)
数据库是如何部署的(k8s 的 statefulset)(优咔科技)
介绍 k8s master 的组件(优咔科技)
容器和虚机的不同点?(优咔科技)
k8s 的源码看过么?(360)
k8s 创建一个 Pod 的全过程(小米)
client-Go Informer 机制全过程?(小米)
Delta-FIFO 和普通队列的区别?Store 是什么?Reflector 是什么?(小米)
k8s 官方 sample-controller 和 kubebuilder 生成 controller 有什么区别?(小米)
5. 服务治理与微服务架构
kitex 框架:服务治理(负载均衡、服务降级...)、可观测(链路追踪...)(展盟)
istio 是做数据面还是控制面?(优咔科技)
Istio 负载均衡的策略(优咔科技)
Service mesh 中南北向和东西向流量处理?(优咔科技)
Linux 命令和系统知识
Linux 的 awk、strace 命令(展盟)
linux 根据服务名称查看端口号(netstat -tunlp | grep 服务名称)(柯莱特-外派小红书)
linux 根据服务名称查看 pid(ps -aux | 服务名称)(柯莱特-外派小红书)
linux 进程间通信的方式(socket、管道.....)(柯莱特-外派小红书)
7. Docker 知识
docker 构建镜像,推送到镜像仓库(柯莱特-外派小红书)
8. 监控和度量
Promethues 在项目中的应用(柯莱特-外派小红书,小米,360)
opentelemetry 相关在项目的实践(trace 的协议、打点后上报)(柯莱特-外派小红书)
Promethues 的 metrics 类型(counter、gauge、Histogram、Summary)(柯莱特-外派小红书)
9. 算法与编程
算法题:使用两个 Goroutine,向标准输出中按顺序按顺序交替打出字母与数字,输出是 a1b2c3……(百度,滴滴)
10. 自我介绍
自我介绍、项目介绍(柯莱特-外派小红书,百度,滴滴,360,小米)
项目的业务背景(360)
k8s 的源码看过么?(360)
Prometheus 在项目中的监控了哪些信息?如何监控?(360)
项目中,单元测试中需要 mock 哪些代码?(360)
11. 职业规划
职业规划(云平台、业务开发)(展盟)
面试建议
一定不要死记硬背八股文,学会结合自己的项目去总结梳理,去表达,这样才能打动面试官。
如果比谁的八股文背的好,那大概率是 chatGPT,光背八股文很难提高自己的面试竞争力!
需要简历优化、就业辅导的朋友可以关注我,私信我。
版权声明: 本文为 InfoQ 作者【王中阳Go】的原创文章。
原文链接:【http://xie.infoq.cn/article/f884958888c8956f7f0a6d2de】。文章转载请联系作者。
评论 (1 条评论)