腾讯PCG一面面经分享

一面 3.6 60min
自我介绍
拷打项目
一些和项目强相关的问题省略
为什么要用本地缓存?
什么是最终一致性,如果节点宕机了数据丢失了怎么保证?
有没有考虑数据迁移的问题
项目中的QPS是多少,怎么压测的?用了什么工具

八股:
项目中用到了kafka,为什么要用,描述一下kafka的架构
redis的查询流程
redis zset底层数据结构,为什么要用zipList或者listpack, zipList会导致什么问题?
说一下listpack里面是存了哪些字段?
描述一下跳表的读写流程,分析下时间复杂度
MySQL聚簇索引的底层结构是什么?为什么要用B+树,对比一下红黑树,跳表?
什么是二级索引?索引在什么情况下会失效, 什么情况下适合用索引?
tcp和udp的区别(从面向字节流, 面向连接, 可靠传输三点分析)
http底层是基于什么协议?(这题是个坑, 一定要区分版本说tcp or udp)
http1.0, 1.1, 2.0, 3.0的区别
队头阻塞是怎么产生的?为什么会产生这个问题
http3.0是如何解决队头阻塞的?在什么情况下会容易出现队头阻塞的问题?
https描述一下流程,CA在其中的作用是什么,证书链的验证过程
进程,线程,协程的区别
描述GMP(Golang)模型
go map的底层实现
描述go map渐进式rehash的流程,和redis的流程有什么不同
go的sort底层是怎么实现的
go的字符串里面Contains是怎么实现的?讲一下KMP算法(忘记了..不确定说会的话是否要手撕)

算法:
手写堆排序
手写快排, 写完问递归实现是否会导致栈深度过深的问题, 附加要求:改成迭代实现
二叉树的BFS
全部评论
太强了哥 平时八股在哪背的啊
点赞
送花
回复
分享
发布于 03-28 02:21 广东

相关推荐

自我介绍两道算法题一道是求数组中所有相加为目标数的组合,要求不重复且需要排序(一开始以为是哈希,写到一半发现是dfs,没写完讲了思路)一道是很简单的模运算调换前后字符串位置问了一堆Go八股make和new的区别讲一下Map(是否并发安全,底层实现,使用事项)线程、协程、进程的区别高并发场景用多线程、多协程还是多进程tcp四次挥手如果你的服务器有很多请求,然后出现大量timewait怎么办(不会)你部署的redis是单机还是集群(单机)如何防止缓存击穿和缓存穿透如果前端出现大量请求,并且都是请求不同数据,都没有命中redis,有什么方法解决mysql相关什么是幻读innodb和myisam的区别(不会)一条mysql语句是如何执行的mysql优化(只说了一个禁用排序)讲一下索引如何保证你的mysql不会宕机如何保证你的服务高可用反问为什么突然捞我(之前看你简历被别的部门锁了但是一直没面,现在面你说明你的简历筛选靠前)go的在公司担任的角色(现在底层用c++,偏业务用go)面评(画饼说我的简历能找到大厂offer,但是写在简历上面的都是默认你实现了,所以不会问,应该更重视实际场景,哪怕是没有实现高可用或者高并发,也要有解决方案)总结问了一个半小时,基本就是全程压力拷打,中间感觉有点神志不清,有些能说一两个答案,但是面试官希望听到更多的答案,有些干脆就不会
点赞 评论 收藏
转发
6 61 评论
分享
牛客网
牛客企业服务