面试题分享

59 阅读2分钟

腾讯一面:

  • 协程池的作用?

  • 内存逃逸分析?

  • go的内存回收什么条件会触发? go的GC能够手动触发吗?

  • channel的底层实现? 有缓冲的,无缓冲的channel, 如果管道已经关闭了, 读取会不会发生错误?

  • 切片使用的时候需要注意什么?

  • go中的参数传递是值传递还是引用传递?

  • defer的执行顺序?

  • 100G的文件, 统计出所有英文字母, 按照字母表顺序输出

  • linux如何分割文件?

  • 接口性能如何优化?

  • 什么情况会全表扫描?

  • 主丛同步的原理? mysql还有什么相关的log文件?

  • 分布式锁的原理?

腾讯二面:

  • Kafka的消息丢失和消息重复消费。

  • Kafka和Rabbitmq的区别在哪?(架构、推和拉)

  • 拉的模式有什么好处(控制消费速度)

  • 使用分布式锁的过程中应用挂了?

  • 优雅启停+defer

  • 使用过期时间+自动续期

  • 对象存储和文件存储的主要区别是什么?

  • 分片上传是怎么实现的(文件合并hash一致性校验,引出文件秒传)

  • 邮箱验证码功能怎么实现的。(redis+邮箱组件)

  • jwt的格式。加密算法、内容、过期时间

  • 讲一下defer的原理

  • 讲一下map的底层结构

  • map中hash冲突怎么解决(链表、红黑树)

  • 讲一下go性能调优的案例(pprof,线程日志)

  • 通过线程日志延伸出,怎么看一个线程在线程日志里是卡在循环还是事件等待?

  • 线程日志上面会有标记。

  • 讲一下mysql的事务隔离级别?

  • 解释一下什么是可重复读?

  • 事务实现的底层原理?

  • Redis持久化机制(RDB,AOF)

  • 为什么持久化的时候是fork子进程处理

  • 讲一下docker实现容器的基本原理

  • 用过其他容器运行时吗

  • K8s有哪些组件?