万字长文2024最全Go面经汇总
本文主要是分享真实的面经,关于这些问题的详解,我们只整理了一部分,文末有他们的详解跳转链接,如果需要可以点进去看看。
对于我们没有整理的面经详解,我建议大家可以使用 AI,基于这些真实的面经去获取对应的答案。
如果你需要更多的面经,也可以私信我联系我。
腾讯一面
- 协程池的作用?
- 内存逃逸分析?
- go的内存回收什么条件会触发? go的GC能够手动触发吗?
- channel的底层实现? 有缓冲的,无缓冲的channel, 如果管道已经关闭了, 读取会不会发生错误?
- 切片使用的时候需要注意什么?
- go中的参数传递是值传递还是引用传递?
- defer的执行顺序?
- 100G的文件, 统计出所有英文字母, 按照字母表顺序输出
- linux如何分割文件?
- 接口性能如何优化?
- 什么情况会全表扫描?
- 主丛同步的原理? mysql还有什么相关的log文件?
- 分布式锁的原理?
腾讯二面
项目拷打15分钟
- Kafka的消息丢失和消息重复消费。
- Kafka和Rabbitmq的区别在哪?(架构、推和拉)
- 拉的模式有什么好处(控制消费速度)
- 使用分布式锁的过程中应用挂了?
- 优雅启停+defer
- 使用过期时间+自动续期
- 对象存储和文件存储的主要区别是什么?
- 分片上传是怎么实现的(文件合并hash一致性校验,引出文件秒传)
- 邮箱验证码功能怎么实现的。(redis+邮箱组件)
- jwt的格式。加密算法、内容、过期时间
- 讲一下defer的原理
- 讲一下map的底层结构
- map中hash冲突怎么解决(链表、红黑树)
- 讲一下go性能调优的案例(pprof,线程日志)
- 通过线程日志延伸出,怎么看一个线程在线程日志里是卡在循环还是事件等待?
- 线程日志上面会有标记。
- 讲一下mysql的事务隔离级别?
- 解释一下什么是可重复读?
- 事务实现的底层原理?
- Redis持久化机制(RDB,AOF)
- 为什么持久化的时候是fork子进程处理
- 讲一下docker实现容器的基本原理
- 用过其他容器运行时吗
- K8s有哪些组件?
腾讯一面(校招)
- map怎么去做并发安全
- 外层的协程能捕获子协程的panic吗?
- panic都会被捕获吗?哪些panic不会捕获?
- slice和数组的区别?底层结构?
- go哪些内置类型是并发安全的?
- go的结构体可以嵌套组合吗?
- 两个结构体可以等值比较吗?
- 你如何理解interface类型
- 1.18版本后interface有什么增强?
- interface可以进行等值比较吗?
- 说说逃逸分析
- channel有缓冲和无缓冲的区别
- map并发访问会怎么样?这个异常可以捕获吗?
- GMP模型
- GMP模型中什么时候把G放全局队列?
- go的gc
- gc扫描是并发的吗?
- gc中的根对象是什么?
- 项目中etcd用来干什么
