背景
- 公司:腾讯
- 部门:区块链产品中心
- 第几面:一面
- 方向:后端开发
- 语言:Go
- 投递渠道:Boss
- 面试时间:2024.10.6 9:30
- 面试方式:线上(腾讯会议)
总体情况
面试持续拷打了2小时30分钟,00:00-00:40聊第一间公司的项目,00:40-01:00聊第二间公司的项目,01:00-01:35问八股,01:35-01:50聊其它,01:50-2:30写算法。果然跟网上传言的“有时候腾讯面试时间会很长”一样。
腾讯面试的风格有点八股战士的感觉,问了挺多八股(相对于我这次面试的其它公司来说),而且八股的种类也挺齐全的了(编程语言、数据库、缓存、网络编程、操作系统)。
因为面试的岗位跟我第一间公司业务相似,所以第一间公司的项目也问了很多。
项目
介绍第一间公司的项目
追问项目背景、团队角色、业务流程、方案设计、实现细节、技术原理、系统性能
简单介绍第二间公司的项目
追问项目架构、部署方式、技术难/亮点、缓存实现、数据库优化
八股
- 对k8s熟悉吗?
- wait group的三个方法说一下?
- 多个defer是按照什么顺序执行的?
- select用于什么场景?它的执行流程,比如随机性?
- channel底层数据结构是什么样的?
- channel被关闭后,继续读/写会怎么样?
- go的内存泄漏和性能调优有经验吗?遇到过什么问题?
- go的内存分配说一下
- go的GC流程说一下
- TCP四次挥手流程说一下
- TCP滑动窗口是做什么的?
- HTTP从1.0到2.0的演化过程中解决了什么问题?
- webSocket有了解吗?
- 介绍一下进程和线程
- 操作系统里面的内核态、用户态怎么理解?
- 虚拟内存是干什么的?
- 文件从写到磁盘的流程?先写到缓存再定时刷盘?还是立即刷盘?
- Redis有哪几种数据形式
- Redis如何做到高可用?
- MySQL的高可用说一下
- https的流程说一下
- 对称和非对称加密说一下
- go读写锁重复释放会怎样?
其它
- 说一下你们现在的开发节奏和流程
- 看一下你现在写的项目代码和提交记录(非泄密的)
- 你有什么想问我的?(通过面试官的回答已经能感觉到通过一面的概率挺高)
- 我问:您觉得我面试情况怎么样?有什么缺点需要改正吗?(面试官这里已经明着跟我说对我比较满意了)
- 我问:公司规模怎么样?有多少人呢?(有很认真的介绍他们部门的背景和人数规模)
- 你现在在哪里? 因为base和你现在城市不一样,是有考虑后面会过来发展吗?手里还有其他offer吗?
- 趋于什么考虑在第二份工作换了方向?(因为我第一家和第二家公司业务不同)
算法
- 用三个携程,轮流打印cat dog fish,要求顺序不能变化
- 反转链表(https://leetcode.cn/problems/reverse-linked-list/description)