先来唠唠
今天分享一位同学的腾讯面经,面试的强度还是比较大。
很多八股都是逐渐深入的方式来问,所以大家在学习的过程中,针对一些重点的内容,最好深入去学习,不然还是比较难应对这种追问式的问题。
接下来我们看看他的面经。
PDD 一面/Java
MySQL
- 索引下推、索引覆盖
- 最左前缀原则
- join原理实现
- 索引设计讲究/原则
- 使用null作为条件查询问题
- 聚簇索引
- InnoDB为什么建议用自增整数作为主键
- MySQL内存磁盘同步机制
- 数据页在内存中是完整的数据吗?
- 分库分表
- MySQL主从架构
- 怎样用?什么情况使用
- 数据同步怎么实现
- MySQL什么时候会死锁
- 提交了怎么样的事务有可能导致死锁
- 表中有业务主键、逻辑删除标志,逻辑删除后又插入同样的一条记录,平衡业务主键和逻辑删除的问题
项目工程
- 设计模式(工程上使用)
- 单体应用多层异常处理原则(异常管理原则)
- Redis、MySQL配合使用,如何确保数据一致性
- 项目介绍
- 业务背景
- 如何进行数据持久化
- 系统QPS
- 哪一部分占比较高
- 项目中算法如何使用
- 项目中的架构设计有何问题
- 如何重新设计MySQL、Redis架构
- 业务修改后 MySQL、Redis数据如何更新
- 系统故障问题、如何解决
- 服务器部署情况
- 代码迭代过程中防止代码腐化
- 关注的业务指标
腾讯互娱 一面/Go
- Go的接口作用,用处,实现
- 空struct用途,会不会分配内存
- Go原生支持默认参数或可选参数吗,如何实现
- 可变长参数
- Go defer执行顺序
- 协程,协程间信息如何同步
- 和传统线程相比有何优势,为何更好
- Go GMP
- GM
- 性能开销大原因
- GMP
- go生成一个协程,此时放在P中还是M中
- G阻塞,M、P如何
- GM
- 操作系统中大端编码、小端编码
- TCP、UDP
- 三次握手、四次挥手
- 为什么挥手是四次,会不会合并
- 流量控制
- Redis项目中使用(主数据库还是缓存)
- Redis与MySQL数据如何同步
- MySQL索引建立原则
- Explain,字段
- Redis持久化方式
- Redis过期删除策略
- Redis高可用设计
- 主从复制方式,模式
- kafka业务使用
- Redis常用数据结构
- zset使用场景,具体实现
- 部署方式,k8s部署(相关概念)
- Go性能优化方式
- 请求耗时过长,有无使用到链路观测
- 单链表判断有没有环
- 玩家积分排序topN实现算法
- 项目中遇到的困难较高的场景
- 微服务r如何理解,有何问题
- 服务端崩溃检测
下面我把腾讯二三面涉及到的内容进行了一个整理,方便你学习。
Go相关
- 值类型:整型、布尔、字符串等基本数据类型、结构体、数组
- 引用类型:切片、map、interface{}、channel、pointer、func函数
- CSP并发模型
- 协程 & 线程 ?
- Channel
- 有缓存
- 无缓冲
- 单向通道 ?
- 双向通道 ?
- map扩容机制
- Go & Java
- 面向对象 ?
- Defer
- Java try catch
- Go defer recover panic
- GC ?
- 逃逸分析 ?
- Mutex
- Map
- sync.map
- 反射
- sync
- Waitgroup
- Add
- Done
- wait
- Cond
- Once
- Waitgroup
数据库&缓存
- 排行榜 计数器。。。,做缓存
- 为什么用redis做缓存?
- 单线程为什么就快?
- 如何实现数据不丢失的?类比redo log
- 各自优缺点aof rdb?
- rdb怎么实现的?
- 为什么引入混合持久化?
- 主从复制的策略
- 哨兵模式?怎么判断主节点真的下线了?如何选出新的主节点 leader?如何通知其他节点和客户端?
- 哨兵集群?
- 切片集群?
- 集群脑裂?出现什么问题?怎么去解决?
- redis的lru lfu
- 哈希链表
- 冷热分区
早日上岸!
我们搞了一个免费的面试真题共享群,互通有无,一起刷题进步。
没准能让你能刷到自己意向公司的最新面试题呢。
感兴趣的朋友们可以加我微信:wangzhongyang1993,备注:面试群。
本文首发在我的同名公众号:王中阳Go,未经授权禁止转载。