往期腾讯面经汇总

最近有朋友找我要腾讯的面经,正好借此机会把之前发过的总结一下,分享给大家。

内容太多了可能有部分没整理到位,可以进文章合集里面找一下。

腾讯互娱

  1. Go的接口作用,用处,实现
  2. 空struct用途,会不会分配内存
  3. Go原生支持默认参数或可选参数吗,如何实现
    • 可变长参数
  4. Go defer执行顺序
  5. 协程,协程间信息如何同步
    • 和传统线程相比有何优势,为何更好
  6. Go GMP
    • 性能开销大原因
    • GM
    • GMP
    • go生成一个协程,此时放在P中还是M中
    • G阻塞,M、P如何
  7. 操作系统中大端编码、小端编码
  8. TCP、UDP
    • 三次握手、四次挥手
    • 为什么挥手是四次,会不会合并
    • 流量控制
  9. Redis项目中使用(主数据库还是缓存)
  10. Redis与MySQL数据如何同步
  11. MySQL索引建立原则
  12. Explain,字段
  13. Redis持久化方式
  14. Redis过期删除策略
  15. Redis高可用设计
    • 主从复制方式,模式
  16. kafka业务使用
  17. Redis常用数据结构
    • zset使用场景,具体实现
  18. 部署方式,k8s部署(相关概念)
  19. Go性能优化方式
    • 请求耗时过长,有无使用到链路观测
  20. 单链表判断有没有环
  21. 玩家积分排序topN实现算法
  22. 项目中遇到的困难较高的场景
  23. 微服务r如何理解,有何问题
    • 服务端崩溃检测

腾讯校招\一面

  1. map怎么去做并发安全
  2. 外层的协程能捕获子协程的panic吗?
  3. panic都会被捕获吗?哪些panic不会捕获?
  4. slice和数组的区别?底层结构?
  5. go哪些内置类型是并发安全的?
  6. go的结构体可以嵌套组合吗?
  7. 两个结构体可以等值比较吗?
  8. 你如何理解interface类型
  9. 1.18版本后interface有什么增强?
  10. interface可以进行等值比较吗?
  11. 说说逃逸分析
  12. channel有缓冲和无缓冲的区别
  13. map并发访问会怎么样?这个异常可以捕获吗?
  14. GMP模型
  15. GMP模型中什么时候把G放全局队列?
  16. go的gc
  17. gc扫描是并发的吗?
  18. gc中的根对象是什么?
  19. 项目中etcd用来干什么的?
  20. mysql索引|B + T
  21. 索引的优缺点
  22. redis用来做什么的?
  23. 用户信息怎么存的?都走缓存吗?
  24. redis过期淘汰策略

腾讯校招\二面

  1. 堆和栈有什么区别
  2. 进程的进程空间是怎么样的?
  3. 进程,线程,协程的区别
  4. 链表额线性表的区别
  5. 有序双向链表如何高效查询?
  6. kafka如何实现高吞吐的?
  7. tcp和udp的本质区别
  8. tcp可靠通信怎么实现的
  9. 说一说拥塞控制
  10. 滑动窗口的作用
  11. 什么是粘包,怎么解决
  12. 缓存击穿,雪崩,穿透

腾讯外包

基础部分 主要是MYSQL redis
  1. mysql索引分类
  2. 聚簇与非聚簇的区别
  3. 在innodb与myisam中 支不支持聚簇与非聚簇?支持的话 形式一样吗?
  4. 索引失效场景
  5. 哪些查询操作会导致回表
  6. explain调优中的一些关键字段以及含义
  7. redis一个值 数据库一个值 你怎么保证数据一致性
  8. 你先更新redis或者更新数据库的理由是什么?
kafka部分
  1. kafka各部分的组成 比如生产者 消费者
  2. 为什么有分区的概念?分区的缺点与优点是什么?
  3. 分区之间是无序的 我如何保证我一个顺序消费
  4. 分区策略KEY-BASE 这个KEY是业务生成还是内置生成
  5. KEY的分区算法怎么做的
  6. 消息丢失的场景有哪些
  7. 消息丢失的对策有哪些?
  8. 生产者可靠性级别

腾讯\3年Go开发经验

  1. Go的调度机制
  2. Go的struct能否进行比较
  3. Go中的defer关键字使用
  4. select语句的用途
  5. context包的作用
  6. client如何实现长连接
  7. 主协程如何等待其他协程完成后再操作
  8. slice的扩容机制
  9. map如何顺序读取
  10. 如何实现一个set
  11. HTTP GET和HEAD请求的区别
  12. HTTP状态码401和403的区别
  13. HTTP keep-alive机制
  14. HTTP是否可以在一次连接中发送多次请求而不等待后端返回
  15. TCP与UDP的区别,UDP的优点及适用场景
  16. time-wait状态的作用
  17. 孤儿进程和僵尸进程的区别
  18. 死锁的条件及如何避免
  19. 常用的Linux命令:查看端口占用、CPU负载、内存占用,如何发送信号给一个进程
  20. Git的文件版本管理,merge和rebase的区别

腾讯音乐

  1. 如何理解微服务,为什么微服务能提升系统可拓展性。
  2. 微服务相比于单体服务的缺点。
  3. 服务间通信成本指的是什么,成本体现在哪。
  4. 把数据库从MongoDB迁移到MySQL的原因。
  5. 如何评估迁移异构数据库(MongoDB到MySQL)的成本,是否仅考虑成熟度和被接受程度,因为迁移涉及数据同步工作量巨大。
  6. 如果采用最终一致性方案,MySQL支持事务而MongoDB不支持事务,有什么原因不使用最终一致性方案。
  7. 迁移过程中数据同步怎么做(新数据库写MySQL,写脚本迁移Mongo数据到MySQL)。
  8. 业务要读写新旧数据时怎么办。
  9. 迁移比较暴力,如何发现数据异常,异构数据库迁移时如何保证每条数据正常迁移到MySQL。
  10. 唯一键场景下(Mongo已有数据,切换到MySQL写时可能重复写入)的处理。
  11. 优化服务器引入分布式缓存技术(具体是Redis),如何实现的。
  12. 如何保证Redis缓存和数据库的数据一致性(回答缓存先写数据库后写存在问题)。
  13. 写缓存成功数据库失败时缓存是否为脏数据。
  14. 先写数据库成功再写Redis,缓存更新失败怎么办,如何知道何时将数据库数据同步到缓存及同步的做法。
  15. 缓存是否有过期时间机制,有没有不过期一直生效的情况,有过期的话多久过期。
  16. 缓存同时过期会有什么问题以及如何解决。
  17. Kafka在业务中的角色。
  18. 业务为什么要经过Kafka这一层,账号量有多大。
  19. 定时任务可分散执行时间,Kafka在这种情况下削峰意义不大,是否有其他考虑使用Kafka的因素。
  20. 防止账号丢失已有确认机制,当作下游处理失败重新触发即可,为何还需要Kafka。
  21. 微信小游戏的token存于sync.map(服务内存),为何使用服务内存而不使用Redis或其他外部缓存方案。
  22. 用户量相关,当有一定数量实例和用户量时这种方案是否有缺陷(此处存在理解偏差导致回答失误)。
  23. MySQL中索引如何实现,为什么MySQL里不使用B树。
  24. 切片如何实现。
  25. Go里并发读写map会出现问题,如何解决。
  26. Go里的sort排序如何实现。
  27. 协程和线程的区别,线程开销大的原因,协程有上下文切换为何线程消耗更多CPU资源。

腾讯后台\秋招\3年Go开发经验

一、通用类问题
  1. 自我介绍
  2. 为什么离职
  3. 会哪些语言
  4. 职业规划
  5. 对未来从事行业的看法

二、Go 相关问题
  1. 实现一个 golang 版简易内存缓存
  2. 遍历 map 的时候为什么不直接删除元素
  3. map 的 value 使用指针和不使用指针有什么区别
  4. map 中 key 可以使用的类型
  5. go 的指针和 C/C++的区别
  6. go 的并发模型
  7. 说一下进程,线程,协程
  8. 协程切换是在用户态还是内核态
  9. channel 被关闭了,读和写有什么问题

三、项目相关问题
  1. 消息队列:数据倾斜问题、数据不丢、重复消费
  2. Redis:使用 hash、使用 Pipeline、bigkey 拆解
  3. 数据库:性能优化、分库分表
  4. 云平台的主要功能
  5. 设备是怎么发现服务的
  6. 为什么使用 TCP 长连接
  7. TCP 长连接对服务器哪些资源有消耗
  8. Linux 系统 fd 的上限是多少?
  9. TCP 长连接是怎么维持的
  10. MQTT 负载均衡怎么做的?服务器故障了怎么处理
  11. 为什么选择 Kafka
  12. Apache Pulsar 知道吗?
  13. 消息积压怎么办?
  14. 给 app 推消息是怎么实现的
  15. 为什么要把推送服务分开

腾讯安全

  1. 一个表,里面有数据列,id, name, class,查学生最喜欢的前10个课程
  2. 怎么用 Linux 命令查 PID
  3. 查当前有哪些进程(ps)
  4. Redis 有哪些数据结构
  5. Redis 持久化机制(RDB、AOF)
  6. ZSet 的底层原理(哈希和跳表)
  7. map 判断数据是否存在及删除键
  8. NAT 是怎么实现的?如果内网有两个不同 IP 访问百度,百度返回消息,怎么知道要返回给哪个 IP
  9. ping 域名不通,ping IP 通了,可能是什么原因
  10. Docker 的隔离性内部是怎么实现的(命名空间等)
  11. GMP 调度模型
  12. defer 与 panic 的执行顺序
  13. 10 个协程用 Ctrl+C 停止会发生什么
  14. 一个协程在什么情况下可以直接停止?如何杀死它?是否支持抢占
  15. 系统调用的过程是怎样的
  16. Go 中变量逃逸的常见场景
  17. Go 协程栈空间的最大分配量是多少
  18. 局部变量是分配到栈还是堆

腾讯

  1. Proactor和Reactor模式的区别?
  2. 栈和堆的内存管理差异?
  3. Slice的底层存储结构?
  4. 说一下grpc和http2.0
  5. Protobuf是什么
  6. Goroutine与线程的核心区别?
  7. Go的并发原语对比JS Promise?
  8. 线程安全的LRU实现方案?
  9. sync.Pool的使用场景?
  10. TCP粘包解决方案?
  11. 值传递 vs 指针传递?
  12. 分片上传的实现?
  13. Slice与List的差异?
  14. GC调优策略?
  15. Context的核心作用?

欢迎关注 ❤

我们搞了一个免费的面试真题共享群,互通有无,一起刷题进步。

没准能让你能刷到自己意向公司的最新面试题呢。

感兴趣的朋友们可以私信我,备注:面试群。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值