最近有朋友找我要腾讯的面经,正好借此机会把之前发过的总结一下,分享给大家。
内容太多了可能有部分没整理到位,可以进文章合集里面找一下。
腾讯互娱
- Go的接口作用,用处,实现
- 空struct用途,会不会分配内存
- Go原生支持默认参数或可选参数吗,如何实现
- 可变长参数
- Go defer执行顺序
- 协程,协程间信息如何同步
- 和传统线程相比有何优势,为何更好
- Go GMP
- 性能开销大原因
- GM
- GMP
- go生成一个协程,此时放在P中还是M中
- G阻塞,M、P如何
- 操作系统中大端编码、小端编码
- TCP、UDP
- 三次握手、四次挥手
- 为什么挥手是四次,会不会合并
- 流量控制
- Redis项目中使用(主数据库还是缓存)
- Redis与MySQL数据如何同步
- MySQL索引建立原则
- Explain,字段
- Redis持久化方式
- Redis过期删除策略
- Redis高可用设计
- 主从复制方式,模式
- kafka业务使用
- Redis常用数据结构
- zset使用场景,具体实现
- 部署方式,k8s部署(相关概念)
- Go性能优化方式
- 请求耗时过长,有无使用到链路观测
- 单链表判断有没有环
- 玩家积分排序topN实现算法
- 项目中遇到的困难较高的场景
- 微服务r如何理解,有何问题
- 服务端崩溃检测
腾讯校招\一面
- map怎么去做并发安全
- 外层的协程能捕获子协程的panic吗?
- panic都会被捕获吗?哪些panic不会捕获?
- slice和数组的区别?底层结构?
- go哪些内置类型是并发安全的?
- go的结构体可以嵌套组合吗?
- 两个结构体可以等值比较吗?
- 你如何理解interface类型
- 1.18版本后interface有什么增强?
- interface可以进行等值比较吗?
- 说说逃逸分析
- channel有缓冲和无缓冲的区别
- map并发访问会怎么样?这个异常可以捕获吗?
- GMP模型
- GMP模型中什么时候把G放全局队列?
- go的gc
- gc扫描是并发的吗?
- gc中的根对象是什么?
- 项目中etcd用来干什么的?
- mysql索引|B + T
- 索引的优缺点
- redis用来做什么的?
- 用户信息怎么存的?都走缓存吗?
- redis过期淘汰策略
腾讯校招\二面
- 堆和栈有什么区别
- 进程的进程空间是怎么样的?
- 进程,线程,协程的区别
- 链表额线性表的区别
- 有序双向链表如何高效查询?
- kafka如何实现高吞吐的?
- tcp和udp的本质区别
- tcp可靠通信怎么实现的
- 说一说拥塞控制
- 滑动窗口的作用
- 什么是粘包,怎么解决
- 缓存击穿,雪崩,穿透
腾讯外包
基础部分 主要是MYSQL redis
- mysql索引分类
- 聚簇与非聚簇的区别
- 在innodb与myisam中 支不支持聚簇与非聚簇?支持的话 形式一样吗?
- 索引失效场景
- 哪些查询操作会导致回表
- explain调优中的一些关键字段以及含义
- redis一个值 数据库一个值 你怎么保证数据一致性
- 你先更新redis或者更新数据库的理由是什么?
kafka部分
- kafka各部分的组成 比如生产者 消费者
- 为什么有分区的概念?分区的缺点与优点是什么?
- 分区之间是无序的 我如何保证我一个顺序消费
- 分区策略KEY-BASE 这个KEY是业务生成还是内置生成
- KEY的分区算法怎么做的
- 消息丢失的场景有哪些
- 消息丢失的对策有哪些?
- 生产者可靠性级别
腾讯\3年Go开发经验
- Go的调度机制
- Go的struct能否进行比较
- Go中的defer关键字使用
- select语句的用途
- context包的作用
- client如何实现长连接
- 主协程如何等待其他协程完成后再操作
- slice的扩容机制
- map如何顺序读取
- 如何实现一个set
- HTTP GET和HEAD请求的区别
- HTTP状态码401和403的区别
- HTTP keep-alive机制
- HTTP是否可以在一次连接中发送多次请求而不等待后端返回
- TCP与UDP的区别,UDP的优点及适用场景
- time-wait状态的作用
- 孤儿进程和僵尸进程的区别
- 死锁的条件及如何避免
- 常用的Linux命令:查看端口占用、CPU负载、内存占用,如何发送信号给一个进程
- Git的文件版本管理,merge和rebase的区别
腾讯音乐
- 如何理解微服务,为什么微服务能提升系统可拓展性。
- 微服务相比于单体服务的缺点。
- 服务间通信成本指的是什么,成本体现在哪。
- 把数据库从MongoDB迁移到MySQL的原因。
- 如何评估迁移异构数据库(MongoDB到MySQL)的成本,是否仅考虑成熟度和被接受程度,因为迁移涉及数据同步工作量巨大。
- 如果采用最终一致性方案,MySQL支持事务而MongoDB不支持事务,有什么原因不使用最终一致性方案。
- 迁移过程中数据同步怎么做(新数据库写MySQL,写脚本迁移Mongo数据到MySQL)。
- 业务要读写新旧数据时怎么办。
- 迁移比较暴力,如何发现数据异常,异构数据库迁移时如何保证每条数据正常迁移到MySQL。
- 唯一键场景下(Mongo已有数据,切换到MySQL写时可能重复写入)的处理。
- 优化服务器引入分布式缓存技术(具体是Redis),如何实现的。
- 如何保证Redis缓存和数据库的数据一致性(回答缓存先写数据库后写存在问题)。
- 写缓存成功数据库失败时缓存是否为脏数据。
- 先写数据库成功再写Redis,缓存更新失败怎么办,如何知道何时将数据库数据同步到缓存及同步的做法。
- 缓存是否有过期时间机制,有没有不过期一直生效的情况,有过期的话多久过期。
- 缓存同时过期会有什么问题以及如何解决。
- Kafka在业务中的角色。
- 业务为什么要经过Kafka这一层,账号量有多大。
- 定时任务可分散执行时间,Kafka在这种情况下削峰意义不大,是否有其他考虑使用Kafka的因素。
- 防止账号丢失已有确认机制,当作下游处理失败重新触发即可,为何还需要Kafka。
- 微信小游戏的token存于sync.map(服务内存),为何使用服务内存而不使用Redis或其他外部缓存方案。
- 用户量相关,当有一定数量实例和用户量时这种方案是否有缺陷(此处存在理解偏差导致回答失误)。
- MySQL中索引如何实现,为什么MySQL里不使用B树。
- 切片如何实现。
- Go里并发读写map会出现问题,如何解决。
- Go里的sort排序如何实现。
- 协程和线程的区别,线程开销大的原因,协程有上下文切换为何线程消耗更多CPU资源。
腾讯后台\秋招\3年Go开发经验
一、通用类问题
- 自我介绍
- 为什么离职
- 会哪些语言
- 职业规划
- 对未来从事行业的看法
二、Go 相关问题
- 实现一个 golang 版简易内存缓存
- 遍历 map 的时候为什么不直接删除元素
- map 的 value 使用指针和不使用指针有什么区别
- map 中 key 可以使用的类型
- go 的指针和 C/C++的区别
- go 的并发模型
- 说一下进程,线程,协程
- 协程切换是在用户态还是内核态
- channel 被关闭了,读和写有什么问题
三、项目相关问题
- 消息队列:数据倾斜问题、数据不丢、重复消费
- Redis:使用 hash、使用 Pipeline、bigkey 拆解
- 数据库:性能优化、分库分表
- 云平台的主要功能
- 设备是怎么发现服务的
- 为什么使用 TCP 长连接
- TCP 长连接对服务器哪些资源有消耗
- Linux 系统 fd 的上限是多少?
- TCP 长连接是怎么维持的
- MQTT 负载均衡怎么做的?服务器故障了怎么处理
- 为什么选择 Kafka
- Apache Pulsar 知道吗?
- 消息积压怎么办?
- 给 app 推消息是怎么实现的
- 为什么要把推送服务分开
腾讯安全
- 一个表,里面有数据列,id, name, class,查学生最喜欢的前10个课程
- 怎么用 Linux 命令查 PID
- 查当前有哪些进程(ps)
- Redis 有哪些数据结构
- Redis 持久化机制(RDB、AOF)
- ZSet 的底层原理(哈希和跳表)
- map 判断数据是否存在及删除键
- NAT 是怎么实现的?如果内网有两个不同 IP 访问百度,百度返回消息,怎么知道要返回给哪个 IP
- ping 域名不通,ping IP 通了,可能是什么原因
- Docker 的隔离性内部是怎么实现的(命名空间等)
- GMP 调度模型
- defer 与 panic 的执行顺序
- 10 个协程用 Ctrl+C 停止会发生什么
- 一个协程在什么情况下可以直接停止?如何杀死它?是否支持抢占
- 系统调用的过程是怎样的
- Go 中变量逃逸的常见场景
- Go 协程栈空间的最大分配量是多少
- 局部变量是分配到栈还是堆
腾讯
- Proactor和Reactor模式的区别?
- 栈和堆的内存管理差异?
- Slice的底层存储结构?
- 说一下grpc和http2.0
- Protobuf是什么
- Goroutine与线程的核心区别?
- Go的并发原语对比JS Promise?
- 线程安全的LRU实现方案?
- sync.Pool的使用场景?
- TCP粘包解决方案?
- 值传递 vs 指针传递?
- 分片上传的实现?
- Slice与List的差异?
- GC调优策略?
- Context的核心作用?
欢迎关注 ❤
我们搞了一个免费的面试真题共享群,互通有无,一起刷题进步。
没准能让你能刷到自己意向公司的最新面试题呢。
感兴趣的朋友们可以私信我,备注:面试群。