简单说一下吧,本人疫情还没开始时面试过一次鹅厂,在MySQL、redis这方面惨败,经过半年的沉淀,加上对MySQL,redis和分布式这块的补齐,终于重拾面试信心,再次出征 。
二战腾讯面试职位:go后端开发工程师,接受从JAVA转语言 。
都知道腾讯是cpp的主战场,而以cpp为背景的工程师大都对os,network这块要求特别高,不像是Java这种偏重业务层的语言 。
之前面试Java的公司侧重还是在数据结构、网络、框架、数据库和分布式 。所以OS这块吃的亏比大 。
一面:基础技术面电话面试,随便问了些技术问题,最后还问了个LeetCode里面medium级别的算法题,偏简单 。大概整理回忆了一下:
- redis有没有用过,常用的数据结构以及在业务中使用的场景 。
- redis的hash怎么实现的?
- rehash过程讲一下和JavaHashMap的rehash有什么区别?
- redis cluster有没有了解过,怎么做到高可用的?
- 说说redis的持久化机制,为啥不能用redis做专门的持久化数据库存储?
- 了不了解tcp/udp,说下两者的定义,tcp为什么要三次握手和四次挥手?
- tcp怎么保证有序传输的,讲下tcp的快速重传和拥塞机制
- 知不知道time_wait状态,这个状态出现在什么地方,有什么用?
- udp是不可靠的传输,如果你来设计一个基于udp差不多可靠的算法,怎么设计?
- http与https有啥区别?说下https解决了什么问题,怎么解决的?说下https的握手过程 。
- 看你项目里面用了etcd,讲解下etcd干什么用的,怎么保证高可用和一致性?
- 既然你提到了raft算法,讲下raft算法的基本流程?raft算法里面如果出现脑裂怎么处理?
- 有没有了解过paxos和zookeeper的zab算法,他们之前有啥区别?
- 你们后端用什么数据库做持久化的?有没有用到分库分表,怎么做的?
- 索引的常见实现方式有哪些,有哪些区别?
- MySQL的存储引擎有哪些,有哪些区别?
- InnoDB使用的是什么方式实现索引,怎么实现的?说下聚簇索引和非聚簇索引的区别?
- 有没有了解过协程?说下协程和线程的区别?
- 算法题一个,剑指offer第51题,数组中的重复数字?
tcp的 time_wait 这块答的不是很好,之前没有了解过quic机制的实现,所以问可靠性udp的时候,基本上脑子里就照着tcp的实现在说 。
https这块没啥说的,之前项目里面有用到类似的东西,研究的比较清楚了 。
raft算法这个因为刚好在刷6.824(才刷到lab2 。。。),答的也凑合,不过paxos和zab算法确实不熟悉,直接说不会 。
MySQL这块很熟了,包括索引,锁,事务机制以及mvcc等等,没啥说的,都已经补齐了 。
协程和线程,主要说了go程和Java线程的区别以及go程的调度模型 。面试官提示没有提到线程的有内核态的切换,go程只在用户态调度 。
最后一个算法题,首先说使用HashMap来做,说空间复杂度能不能降到O(1),后面想了大概5min才想出来原地置换的思路 。
总得来说,答的还行,一面就这么过了 。
二面:项目技术面二面从基础技术考察转移到了项目,主要问了我下面一些问题:
- 针对自己最熟悉的项目,画出项目的架构图,项目主要的数据表结构 。
- 说说项目中使用到的技术点,项目的总峰值qps,时延 。
- 有没有分析过时延出现的耗时分别出现在什么地方,项目有啥改进的地方没有?
- 如果请求出现问题没有响应,如何定位问题,说下思路?
- tcp 粘包问题怎么处理?
- 然后还问了下缓存更新的模式,以及会出现的问题和应对思路?
- 除了公司项目之外,业余时间有没有研究过知名项目或做出过贡献?
三面:综合技术面这面面的是阵脚大乱,面试官采用刨根问底的方式提问,终究是面试经验不够,导致面试的节奏有点乱 。举个例子:
其中有个题:go程和线程有什么区别?
答:起一个go程大概只需要4kb的内存,起一个Java线程需要1.5MB的内存;go程的调度在用户态非常轻量,Java线程的切换成本比较高 。
接着问为啥成本比较高?因为Java线程的调度需要在用户态和内核态切换所以成本高?为啥在用户态和内核态之间切换调度成本比较高?我简单说了下内核态和用户态的定义 。
推荐阅读
- 腾讯T8架构师,教你学中小研发团队架构实践PDF,高级架构师捷径
- 电脑用360安全卫士好还是腾讯管家好
- 滴滴|滴滴去年Q4营收407.7亿 同比降13%:腾讯总裁刘炽平辞任 将于美股退市
- 腾讯股价腰斩,段永平被套,如何穿越被动?简单策略远胜复杂策略,买入并持有,芒格是如何做到的?
- 公司来位腾讯大牛,看完我构建的Spring MVC框架,甩给我一份文档
- 手机游戏|腾讯暗黑手游《拉结尔》上线3年停运 补偿将开启
- 召回算法实践总结
- 腾讯|微信朋友圈十年!6亿人为何只看不发?背后原因揭开
- 腾讯|腾讯顶级IP大作!《宝可梦大集结》下载已破7000万 完全免费
- 腾讯|赶紧告诉父母!微信关怀模式新功能上手:超人性化