秋招经验-字节/阿里面经
上次发帖还是在春招233,之前无意间发现写的这篇春招的攻略还上过牛客热搜第二 接近200个收藏😂链接在这里:https://www.nowcoder.com/discuss/651492?source_id=profile_create_nctrack&channel=-1
很多经验感觉在春招攻略已经提过,所以这里还是重点分享下面经吧😄
秋招整体还是比较顺利的,battmdj只剩下腾讯没搞到了
美团,京东,百度的八股风格跟阿里类似,这里一起说了。
简单说说阿里的面经吧,我是投的部门一共三轮技术面,整体感觉每一面都是在深挖我的项目,
回过头来看 目前的我和春招那时候的的我,有哪里不同?我觉得是实习,吃透一个相对完整的实习项目真的太重要了。
这里因为保密的原因,我不能透露实习项目的细节,但是我可以说说面试官问的方向。
面试官首先最想知道你目前经手的项目大体是与什么相关,所以要先简单说说项目背景/意义。
再然后就是想了解一下你自己参与的是什么,你可以把自己经手的项目的全链路做一个完整清晰的介绍,阿里面试官会很仔细的听,随时记录下要点,你讲完会提问的。
你介绍完项目之后,面试官会针对你的项目的整体设计提一些疑问,比如消息重复消费/消费失败/在线与离线数仓同步等等问题,问的会很细,然后会顺便消息队列的八股,以此类比,其他技术细节,也是类似的风格。
这之外,面试官往往还会针对你的设计方案提出一些质疑,因为毕竟很多方案设计考虑不是那么周到,首先会让你自己去完善设计,比如有的地方是不是需要考虑加锁,如何上锁?各个链路线上出了问题如何兜底?在哪里看出问题了??等等...这些还都是冰山一角,所有有一份靠谱的实习还是相当重要的。
阿里三面每一面大概持续40分钟,不算长,每一面都是电话面&0算法,但是几乎每一面项目都问了我半小时左右,是所有面试里项目挖的最深的。整体面试体验相当好,感觉夜能通过面试学到不少东西。
说说阿里的八股,因为明确重点是项目,八股大概每一面持续10min,记不清各个点具体是哪一面了,堆在一起吧:
0.几乎每一面都有RPC跟分布式锁的相关问题:聊聊CAP&2PC?redis&zookeeper的分布式锁都讲一下细节,Redis的有哪些问题&咋解决?RPC流程说说?其中涉及一个RPC场景题设计,具体细节记不太清了,记得是考察RPC的缓存机制。RPC可以远程调用,HTTP也行,为啥非得用RPC呢?还有几个细节问题,印象不深了,面阿里要重视RPC跟分布式设计哈
1.Sping是啥,为啥要用Spring,IOC&AOP说说是干啥的?Bean的作用域&生命周期讲讲?@Autowire和@Resource 区别讲讲?我说在滴滴主要是go,面试官就不追问了。。不然可能问源码2333
2.工厂模式的意义在哪里?为啥有这种设计模式?监视者模式听说过哈?说说用途?
3.双亲委派是咋回事?如何打破?为啥要有双亲委派?
4.说说一个new一个对象的全过程?(类加载-分内存-如何避免并发安全-初值设置-对象头设置-执行对象构造方法-如何访问对象 记得巴拉巴拉讲了很久 越细越好)
5.jvm堆内存模型说说?(巴拉巴拉又能说很久)
6.网络分层说说?每层干啥的?点开一个网页会发生啥?(巴拉巴拉又能说很久)
7.https相关,非对称加密,证书是咋回事?为啥用?中间人攻击咋回事?
8.IP报文的头 , tcp报文段头啥字段 介绍一下?
9.MySQL主从备份说说?Redis哨兵机制?选举算法?说说Redis为啥快吧?其中你说到了Redis的多路复用 可以详细说说吗?(可以扯到OS的io多路复用以及java的nio/bio)
10.AQS详细讲讲??
11.MQ如何保证可靠性传输,各个mq的区别是啥?如何保证消息唯一?
印象里绝大部分是常规八股,时间短&量不大,一些场景设计会在问实习的时候给出,因为自己熟悉自己的实习项目,所以在这种场景下的场景题我觉得都是相对好解的~整体面试体验很棒2333
再说说字节的面试,一样是三轮技术面试,相比阿里 感觉这边更像是在面腾讯,更注重计网跟os和数据库基础,时间比较久了 有不少面试的题没想起来,我尽可能的回忆🤣
一面:
一开始就是讲实习项目,巴拉巴拉说了15分钟左右,面试官说不错&挺完整的 没深入问。
1.面试官懂java也问了些java的,不算特别深入,final关键字深入说说?反射深入说说?(能说到jvm层最好 扯到对象头定位class类对象,方法区里的instanceKlass跟堆里的class类对象互持指针,进而定位方法区里的方法表等等应该就比较深入了) equals和==啥区别啊?出了个题让我做一下,然后没啥问题就问别的了。
2.计网-每一层具体干啥的,结合点击一个页面详细展开说,可以说很久
3.cookie&session啥区别,session存在内存里 满了咋办?HTTP几个状态位详细说说?GET和POST相关问题也问了一些,最后经典的HTTPS非对称加密相关(太高频了233)
4.OS相关,虚拟内存聊了很久,干啥用的?优点是啥?分页分段区别?任务管理器的内存是虚拟内存还是物理内存?咋保证的虚拟内存间的隔离性,MMU在其中起到的作用是啥?(可以深入到内核级别解释.....答好了很加分)?请页与交换整个过程详细说说? 聊下进程的调度算法?协程是干啥的,跟线程进程比啥区别?
5.数据库索引相关,为啥b+树?优点是啥?跟其他的索引比比,比如红黑树 哈希索引?非聚簇索引跟聚簇索引啥区别?
6.场景设计:会议室预定 冲突咋整 巴拉巴拉 一开始看挺蒙圈的
7.智力题:6L 5L 水 凑4L
8.时间久远 有些题想不起来了🤣
算法:1.原创题目-解法类似二叉树的公共祖先 2.旋转数组找最小值
二面:
1.计网相关:计网的各层都是干啥的详细说说 相关协议?[HTTP+DNS+TCP/UDP+OPSF/ICMP/IP+ARP等等](每轮都问 - -)
2.TCP如何保证可靠传输?你说到了滑窗也提到了拥塞窗口,分别是哪一方的窗口 啥作用?? 然后聊IP层的分片,为啥分片?(MTU)那么你知道TCP和UDP它们交给下层IP层分片嘛?(TCP在三次握手时达成了一致的mss最大报文长度因此产出的tcp报文段会小于1500字节 此时ip层不会去做分片了 而udp没有这一步 会转交IP层分片)
3.了解SQL注入和xss跨站攻击嘛?中间人攻击?证书咋起到作用解决这个问题的?
4.问你点操作系统吧:硬链接软连接啥区别?硬链接删一个会导致源文件删除还是删除全部硬链接才会导致源文件删除?咋看进程和cpu情况?咋看io压力情况?(这里我回答成硬盘了du/df,其实看io压力是iostat)cpu负载是啥?负载满了一般啥情况,咋办?cpu利用率是啥?利用率100%一般啥情况出现,咋办?进程间通信方式说说?线程咋通信呢?
5.数据库:说说acid? 其中一致性,原子性,持久性谁保证的?(undolog/redolog)那么隔离性咋保证呢?(MVCC)你既然提到了MVCC详细说下它原理吧(巴拉巴拉说了很久)好,那你讲下隔离级别里RR和RC分别在MVCC咋实现的吧,再说下幻读咋回事 咋解决?想想看 为啥innodb在写数据的时候要写redolog 不直接写磁盘?(考察顺序io,提一下中间的buffer的作用也对的)聊聊WAL?说一下redolog和binlog的两阶段提交?
6.聊下缓存的淘汰策略?主从备份咋做的?主从复制呢?说下redis的数据结构和底层实现?
7.算法:最小路径和 挺常规的,八股答得顺利一般算法也不会难
三面:
三面我本来打算应对一堆场景题和智力题的。。。因为之前扒三面不少问场景设计和智力题的🤣我应该是比较幸运的那一个,遇上一个特别好的面试官
三面超级出乎我意料的是,0八股,全程聊实习,因为我实习的部门做的工作跟字节这个部门很多相似之处,聊的非常开心,面试官拓展问了很多dd国际化的东西(真的聊的很多很细),感觉既是面试又是一起交流,跟阿里面试官问项目技术纵深点 不同的是字节这边更关心业务跟我做的事情的契合度,面试体验极佳!最后算法居然是手写二分查找,当场就感觉差不多三面过了。。。
9月底陆续收到各家意向也差不多是相对比较放松的一段时间了,熬过7&8月实习毕设秋招三座大山的重压。
不忘初心,继续前行,去迎接新的挑战。