我的23届秋招基本上也快接近尾声了,后面开的大厂 估计我也没有啥资格去竞争了, 对自己的能力还是有清晰的认识的。所以准备开这个帖子把自己三个多月的面试经历都整理一下,算是做个总结把。     本人基本情况是双非本,985硕,非科班、无实习。这些全让我占了,没有实习真的对于今年来说太难受了。真的今年秋招太难了,特别是成都应届生,今年八月份一个月真的是经历了太多了:高温、限电、疫情、地震。真的太难了。     三个多月来大大小小公司投了三四十家公司,给了我面试机会的就十多家,基本上给了面试机会都走到了终面了。就包括有大华、禾赛科技、景嘉微、联发科、中兴、深信服、字节、百度、米哈游、小米、海康威视、华为等。唯一二面挂了就是百度,(运气不好出了个极度偏门的题目+已经过了80%样例但是面试官死磕然后挂了)。     目前情况     已收到offer:联发科、中兴、景嘉微、深信服     已收意向待开奖:字节、米哈游、禾赛科技     面完泡池子中:华为、小米、海康威视、大华   字节后端开发一面 7.28 1h          1、自我介绍      2、介绍项目,做这个项目原因      3、项目中表结构的设计?      4、通信的协议是什么?群聊是如何实现?群聊这个模块聊了很久 实际设计起来很复杂 (20min)            面试官指出了我设计的不合理处,千人聊天性能会有很大性能瓶颈,后续再聊如何进行优化,涉及到了如何做数据落盘保证数据可靠传输、群聊数据如何存储? 群聊的表该如何涉及? 群聊场景下转发是否合理?消息队列如何实异步处理群聊消息。面试官逐步引导深入的。         5、手撕算法: 大数相加      做完题目继续问八股 25min+     6、tcp三次握手和四次挥手过程?      7、udp和tcp区别?      8、如何把udp改造成tcp一样的可靠的通信方式      9、进程和线程的区别?      10、redis的数据结构?      11、redis的大key      11、mysql的innodb的数据结构?      12、mysql的事务四大特性?      13、事务的隔离级别有哪些?      14、c++堆和栈的区别      15、c++中内存回收机制      16、如何用一个数组实现一个队列?设计的结构体需要哪些成员变量?      17、如果初始队列长度为10的话,数组长度需要多大? -- 11      18、哈希表如何实现?使用拉链法,当数据量大了,链表变长了,该如何优化?(红黑数/rehash)      19、rehash扩容的过程                字节后端开发二面 8.4 50min     1、项目介绍      2、说一下发一条消息的整个流程      3、你项目的提高并发是怎么做的?      4、提出来新需求要求实现,已读未读如何实现?未读数存在哪里?(mysql上) 说一下表结构大概会怎么设计?怎么判断他已读,以及如何整个的设计流程?      5、已读未读数定义成全局变量存放再内存中,如果服务器宕机了,数据不就丢失了吗?      我的回答是因为存储了所有的消息,因此即使宕机了,我们只需统计一下我们的数据表的信息,重新把已读未读数统计出来。      6、群聊的人数上限是多少?为什么只设置100的上限?      7、说一下你整个rpc项目怎么来调用的, 怎么实现的?     我把项目介绍说了一遍,中间介绍到服务注册中心模块时面试官就打断了我      8、问我什么时候去把服务注册到zk上?我回答先把rpc服务注册到zk上之后才会打开我们的网络模块      9、再问另外一台服务上线后怎么去zk上面去找的,如何知道这台服务?      10、rpc与http的区别?      11、项目中碰到的难点?      12、布隆过滤器?      13、一致性哈希 --说了很多面试官打断了我,说get到点了 不需要继续说了      14、红黑树比平衡二叉树的优势?      15、项目中MQ用到了吗?了解kafka这些吗(不了解)      16、分布式锁如何实现?--面试官又继续打断了我扩展      17、redis的过期机制?      18、redis的大key有了解吗?      19、mysql的间隙锁?     20、比如表里只有100条数据,我select id大于5, 会加间隙锁吗?--我答成自增主键严格递增了 不会加间隙、     面试官又换了一个说法,表里面是两个字段:id和age, 当select age>5的时候会加间隙锁吗?    我回答会加间隙锁, 他说那如果加间隙锁后续成千上万查询不都的等着吗?严重影响效率我后面反应回来 是不会加锁 需要使用select where age > 5 for update; 需要加上update 关键字     21、说一下undu log和redo log?     22、sql题: 查询被两个用户以上听过的歌曲 (5min)    如何区分不同的人    手撕环节: 有序数组,查找两两组合成x的对数,有重复数字,需要统计到一起(10min)      {-3,-3, 0,1,2,3,3} x=0;则对数有4对。      小插曲 憨憨行为:样例输错了调了十分钟,思路对的怎么结果不对,后面发现样例输错了,导致结果对不上     22、反问环节     二面完立刻约了三面, 但后续面试官说是出差又调换了时间。     字节三面面经 8.12 1 h     1、自我介绍     2、进程和线程的区别    3、单进程多线程的环境下, 三个线程协作,交替打印1-n个数字如何实现;    4、你notify的时候是指定线程还是所有线程? 你是如何保证对应线程抢占到锁(条件变量,面试官估计开始没听我怎么设计的)    5、极端境况下 线程2一直抢占不到锁 该怎么处理?           线程饥饿-两种方案:1)sleep 2)加双锁        6、socket实现一个tcp连接如何实现?    7、基于刚刚server 如果两个请求过来,如何实现? io复用+reactor模型 引入了c10k问题    8、reactor模型具体实现是怎么处理的?是多进程还是多线程?           介绍了muduo中one loop per thread的这个架构        9、一般开多少个线程?    10、如果真的有10k个连接过来,每个线程处理请求时串行处理还是并行处理?每个工作线程具体执行的任务是什么任务?           讲了下集群聊天服务器中如何实现的        11、任务队列顺序处理有可能会出现前面任务执行时间太久 导致后面任务都已经超时了,该怎么处理?           设置最大工作时间,超时则丢弃        12、操作系统的内存分配过程?           答了malloc实现,面试官说让我说操作系统的底层是怎么实现的 我把从虚拟内存到物理内存的访问都说了一遍 - 页表查询-缺页中断 内存回收(swap机制) -oom机制都说了一下        算法题环节:先讲思路在写题     1、下一个排列( 三分钟秒了)     2、奇偶排序-需要自己定义节点结构体, 自己输出结果 (写了十多分钟)       13、身边有哪个人是你值得学习的,是你的榜样?     14、你对自己的规划是什么样子?    反问环节     三面完立刻就约了hr面     HR面:8.15 30min     就是简单聊学习生活  
点赞 78
评论 31
全部评论

相关推荐

好久没来牛客了,今天面试了一个实习生,感觉对方形象乱糟糟的,头发像鸡窝,像刚睡醒就来面试了,第一印象直接大打折扣,感觉我没有受到应有的尊重,再加上对方业务能力也一般,我直接挂掉;大家面试的时候还是好好收拾一下自己吧,争取给面试官留下个好印象,面试这东西还是存在眼缘的
MinJerous:更在乎本质,应该看候选人是否和岗位需要的能力匹配。洗脸/不洗头都无所谓吧,说不定人家刚刚通宵准备,就是为了这场面试呢?你挂掉他核心原因还是他能力不行,而不是形象。就算形象好点,能力不行你敢给过吗,不怕后面+1质疑你
投递牛客等公司6个岗位 > 牛客激励计划
点赞 评论 收藏
分享
双非阴暗爬行:我来看看笑死我了,这名字取得好想笑(没有不好的意思)
点赞 评论 收藏
分享
迷茫的大四🐶:自信一点,我认为你可以拿到50k,低于50k完全配不上你的能力,兄弟,不要被他们骗了,你可以的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务