### Summary **一面 70min **(很多问题记不太清楚了) 1、自我介绍 2、项目相关 限流相关,分布式锁,Kafka等… 令牌桶漏桶实现,分布式锁实现和对比,原子操作、 Kafka架构,可靠性、零拷贝... 3、线程进程协程各自之间的区别 4、Goroutine协程 、GMP调度 5、Golang GC算法 6、Golang中slice是线程安全的么 map呢 7、sync.map底层实现 如何保证线程安全 // sync.map的底层是通过加锁的方式, 8、map的底层实现和扩容,hash解决冲突的方法 // map的次鞥实现是hash 数组,加上链表, hash解决冲突,主要有开放定址法和链表法。 链表法,以及线性 9、计算机网络,分层结构中每层中常见的协议 // 1. 应用层 http协议,POP协议,SMTP协议 // 2. 传输层 tcp协议,udp协议 // 3. 网络层 IP协议, ICMP协议,RIP协议 // 4. 数据链路层,ARP协议。 // 5. 物理层, IEEE协议 10、ARP协议 // ip地址转化为mac地址的一种协议,一般有路由器中会缓存一张ARP表,这个表会映射IP和MAC地址。从而达到搜索地址的方式,如果表中没有对应的映射,就会发送一个ARP 广播,询问ip对应的mac地址是什么。。 11、TCP如何保证可靠 // 1. tcp建立连接会经过三次握手,确保连接建立。 // 2. tcp断开连接也会经历四次挥手,保证连接释放,保障旧连接不会影响新连接。 // 3. tcp中每个报文都有序列,保证消息最后是有序,且提供对丢失消息的重试机制。 // 4. tcp报文会有些校验机制。保证报文完整。 // 5. 流量控制机制,保证接收方可以正常接收报文。 12、为什么要有2MSL // MSL就是报文的最大生命周期, 注意被动接收方重试发送final的时间可比MSL要小很多。前题是A发送ACK后是没有收到final报文。 // 答案:1. 为了优雅的关闭一个连接,当然也不能百分百保证能够优雅的关闭,但其实当发送final的时候已经表示数据传输完毕了,能否收到影响不是很大。 // 2. 处理延迟重复的报文。 至于设置2MSL 这个大小,网上有很多说法,但是感觉都不是很靠谱,感觉就是一个经验设置。 //个人感觉,是如果绝对保证一定可以在2MSL时间所有的报文都消失,极端情况下,ack发送失败后,被动关闭方重试final,也一直发送失败。也是无法保证的。 13、虚拟内存技术 14、Redis主从复制、全量复制和部分复制 15、zset常用命令,底层实现,为什么ziplist占用空间小 16、MySql四种隔离级别,MVCC、可重复读的幻读 17、算法题 (1)LeetCode路径总和 II //1. 先写一种性能最差到递归方案(2)多个有序数组,找出TopK **二面 60min** 1、自我介绍 2、项目相关 3、MySql索引,B+树的查询复杂度 4、AVL树和红黑树区别与联系 5、Redis持久化 6、Golang GMP调度、抢夺和全局队列Goroutine队列的意义 7、Golang GC何时触发 8、进程间通信的方式 9、算法题 (1)LeetCode 螺旋矩阵 (2)一个有序数组,按照某点翻转后,查找是否存在n,返回n的下标 **三面 40min** 三面应该是一个大leader,上来随便聊天聊了很久,然后直接就让写算法题了 1、开根号 二分法和牛顿法比较 2、一个数组,表示多个蘑菇,经过一个蘑菇,可能会造成血量减少和血量增加,由数组中数值正负决定,每走一步需要消耗一点血量,可以一次走N步,初始血量M,求能否到达终点和到达终点的剩余最多血量。 3、在第二个题目的基础上,走的步数和消耗的体力变为平方的关系,跳N个下标消耗N^2的体力,初始血量M,求能否到达终点和到达终点的剩余最多血量。 4、二面问到了Redis 的持久化,你再来给我详细讲一讲吧 **总结** 感觉这次面试,面试官问了很多Golang的基础的东西,GMP 和 GC 这种一定要能够完整详细的讲清楚,slice和map,sync.map要去源代码里翻翻看,底层实现要大致清楚。 项目相关就不说了。 数据库相关,redis数据结构以及底层实现和各自的用处,然后包括redis主从和集群架构,持久化这些都要能够清晰地讲出来。 mysql就是相关面经写到的常见的那些吧 这次也是运气比较好,每次感觉都是艰难过关,字节的面试官都是非常好的,会引导进行思考,回答问题一定要思路清晰,有条理,能够发散性的进行对比和思考。 大概就这样吧,这次面试能够通过,也是非常内推官和HR,非常感谢各位的帮助。 内推人的内推码: 字节跳动校招内推码: E4DTG6P 投递链接: https://jobs.toutiao.com/s/ejyLymN
全部评论
(1) 回帖