字节后端暑期实习 一二三面(已拿offer)

整体情况总结

个人简历情况:双非大三 + 去年八月份开始准备 + 两个项目 + 开源仓库 + 几个国奖 + 知识库 + 专业绩点前1%
面试背景:去年9月投递了一次,过了简历年底才面,面完三面凉面试经验|字节后端实习 一二三面(凉经)也没告知原因,也没被捞,不服气寒假准备了两个月继续投暑期,应该是面的最早的一批,然后就有了这篇面经了~ 从二面起写的很详细,尽最大可能还原了现场和我的回答逻辑。希望能给有需要的人一些帮助。
面试情况:笔试1h ak + 6场面试算法题都过 + 八股文应该没问题 + 中间件可能不熟悉 + 项目和场景设计题能勉勉强强满意
达成神奇的成就:仅有的面试机会全是来自字节
[字节跳动暑期实习后端一面面经] 2022-3-3 大三下
[字节跳动暑期实习后端二面面经] 2022-3-7
[字节跳动暑期实习后端三面面经] 2022-3-8
[字节跳动视频架构实习一面面经] 2022-1-3 大三上
[字节跳动视频架构实习二面面经] 2021-11
[字节跳动视频架构实习三面面经(凉)] 2021-11

这应该是字节暑期实习最早的一份面经 + 攻略~许愿offer啦
2022-3-9 12点来的消息三面过了~~

一面 2022-3-3 1h

这次是我第二次面试,第一次也是面的字节字节跳动视频架构实习三面面经(凉经),因为大三下学校有课有考试,时间原因以及一些其它方面原因(hr说不方便透露)就也放弃了找日常实习了,等了一个月开始面暑期啦
大概情况:

  • 目前大三刚刚开始投递暑期实习
  • 27号笔试1h ak了,看到***也有小伙伴发了暑期实习面经,有点慌,等了好几天才有HR联系我
  • 算上之前三次面试,第四次走字节的面试流程感觉很是熟悉,哈哈,有点喜欢上这个节奏了,不清楚其它公司面试流程咋样

字节面试是真的很看逻辑,讲到哪问到哪,合理提出关键字就会带动面试官去提问(当然我才面过几次还没这能力,都是随口说出其它八股文关键字,然后面试官就说:你刚刚提到xx,那我们聊聊xxx)。

总结评价:前期项目聊到哪问到哪,后期八股文是真太熟悉了,算法卡时间险过。
【============项目分割线============】

项目里面用到RabbitMQ讲讲对RabbitMQ的了解(这里没答很好,挖了一个坑,到三面被gank了)
RabbitMQ的交换机和队列是怎样一个联系简单讲了讲
项目里面用到Mysql监听binlog,binlog是什么八股文ing,用于备份,用于复制..
redolog和binlog的区别。说了区别,以及联系,两阶段提交,以及分别能做什么
RBAC是什么?怎么实现的?讲了下如何设计,5个表,如何用json优化到三个表,如何配合业务层实现授权以及鉴权
Redis怎么统计在线用户。讲了下暴力统计token,面试官不满意,就过了
项目用了缓存是吧--》开始问redis,开始八股文
【============八股文分割线============】

Redis的数据结构讲一讲 + 使用场景五种及使用场景 + bitmap等等
Zset里面跳表是什么?抽象的描述了一下,面试官也没深入问底层如和实现的
既然讲了上面这个数据结构那讲讲Mysql里面为什么用B+树?嘴瓢了,没讲得很清楚,但点都说了
B+树和二叉树区别?那能不能用哈希呢?不行(这里答错了,应该是答不合适),hash不能区间查询
讲讲数据库索引?八股ing
什么是事务?讲讲数据库的隔离级别,分别怎么解决可能出现的问题?八股答很熟悉,但三面也有这个问题(可以看后面),很明显就不是一个级别,需要很深入理解,用一个多线程案例从业务层到缓存到db一直分析可能出现问题
既然你说了MVCC,那简单讲讲MVCC?答得很表面,回去赶紧看了看
既然用了MVCC版本查看,为什么还会出现幻读? 因为之前博客看MVCC能解决幻读,所以晕了没答上来,回答了下串行化、间隙锁可以解决幻读
那聊聊操作系统,说说进程和线程的区别。老八股了
进程线程都怎么通信。八股拿下
线程的状态。老八股文
那聊聊计算机网络输入URL到看到网页老八股文
四次握手。答到一半短路了,没答好。GG
【============算法分割线============】

前序 + 中序 构建二叉树 并且前序 + 中序打印。

由于字节是飞书IDE,导致构建和遍历打印都要自己写,相当于3个题目qwq,凭着记忆马上码完了框架,跑,报错,G。。。(我坚信代码没问题)

最后只好给面试官讲思路,快结束了,面试官开始质疑我代码写错了(要是他不质疑我看时间真快放弃了)。

我问还剩几分钟,让我再调试下,最后拖延了一两钟抢险一发过了,少了个边界,一看时间恰好可能他要面下一个同学了。最后没有反问环节。

感谢面试官最后质疑我。。。
【============3.4日更新分割线============】
HR第二天通知我一面过了,约了二面时间,感觉安心了一些了,冲冲冲~这次一定要拿下

二面 2022-03-07 1h

2022年3月7日18:33:19 全程都是项目 + 场景,没八股,写完就是写算法留了很长时间,感觉内容不多(写着写着发现不对劲,问了好多),感觉自己准备的还是不够到位。凉经预警qwq (面试完写面经,半小时不到写着写着就过了)

【============项目分割线============】

你是来实习是吧?课程怎么办?我是找暑期实习
哦哦,那讲讲你对spring和springboot的理解?好久没准备spring题目了,答得一般般
springboot是怎么加载redis的,为什么比不用springboot更方便呢?开始抽象描述
加载的redis或者bean是单例还是多例?默认单例
springboot是怎么实现单例模式的呢?面试官应该看出我不熟了,就开始带路看我理解了,回答类似map存beanname
单例模式线程安全吗?本身不具备安全特性
怎么保证多线程下面单例模式安全?双重校验锁 + volatile(但我理解错了说的concurrentmap可以保证线程安全)
那你刚刚说到的concurrentMap和hashmap有什么区别?面试官就顺着我错的讲的来,面完才get到点
线程安全是什么概念?没去思考过,按照想法和可能发生的问题理了一下
hashmap为什么多线程不安全,能举出例子来吗?多线程插入resize过程死循环(但我这里答的不够精炼)
怎么保证线程安全?(锁)
**volatile和synchronize有什么区别?**或者功能?我讲得有点杂乱了
那回到刚刚的问题他们怎么保证线程安全?面试官及时把我拉了回来
举个例子i++,分别说说。i++不是原子操作,涉及多个操作,需要保证他原子性才能安全
volatile能保证i++安全吗?不行,单线程可以,多线程还是会覆盖(我当时咋忘了说全了呢)
那看你简历写了设计模式,你能说说设计模式吗?讲自学的,软工课上学的,巴拉巴拉
为什么设计模式更好,你能说说用和不用的区别吗?代码更优美,更规范、更高级,讲得很抽象,面试官就打断继续和我拉扯``
也说不上高级,那你举个例子讲讲设计模式的好说的策略模式,但感觉没说到点
好,那讲讲几种常见的设计模式。工厂、观察者、建造者,桥接、单例、策略..然后方便简单讲了讲在spring里面的体现
那讲讲微服务吧。(毕竟我简历上写了了解)我说我学了但没怎么用,讲了下单体服务到微服务的过度和区别
微服务两台机器怎么通信呢?单节点HTTP、微服务PRC
那两台机器如何用HTTP怎么找到对方?域名dns解析ip;如果不知道域名呢?不懂了0.0
那微服务都有什么部分呢 注册中心、网关、xxx
注册中心是什么讲讲?中心化思想,巴拉巴拉
网关是什么呢?别说了别说了.jpg, 其实就说了下思想,然后直接说我这块之前学的现在有点记不住了
好那既然有分布式,你能说说分布式登录怎么保持状态吗?讲了下登录怎么保存状态,然后讲了下分布式session、redis存、JWT
讲讲JWT
那我现在提个需求,假设用户登录了,我想封他id,怎么操作,在java程序哪操作?可以用户数据库+status状态、登录时判断、拦截器请求时判断、redis维护黑名单。
讲讲如果让你项目去实现禁ID(T人),你怎么做? 这个我熟,感谢sa-token作者的博客,给我安排的明明白白
如果不用redis呢?java内存维护set如果黑名单少的话,或者每次请求就搜库
那讲讲set集合?八股ing
**怎么设计限制用户单位时间访问次数? **简单的直接redis 设置带时间的key统计访问次数。实际场景应该用zset统计用户访问时间戳,java程序每次往前读取zset一段时间戳统计访问次数是否大于限制,大于就加入黑名单;还有令牌桶临时没想到
【============算法分割线============】

力扣

d个骰子可以,每个骰子可以投f个面(1-f分),构成targe有多少种情况,结果对1e9 +7除余

我一开始是dp写,但感觉时间不够我去推,我就拿dfs暴力写了一个,结果面试官说时间还有,继续优化

dfs暴力搜索 ==> 相当于 d个for循环 时间复杂度 O(d^f)不行,继续优化,我试探的问了下是继续dfs优化还是换算法,他隐藏提醒换算法,只能硬肝dp了
dp[i][j] 第i个筛子可以凑成j种分数,dp[i][j] += dp[i][j-f] (f从1-f循环)每次从上一层状态凑 过了qwq
【============反问分割线============】

这次没八股文,都是实战场景,想问问我回答情况怎样?能不能给一点建议。 不想要统一的答案,想要解决问题的过程
部门是Java还是Go?·Go

结束,面完还在自闭回想(见第一行最后),我一般不录音,都是面完按照面试官思路去把面经整理出来,同时方便自己复盘感受感受面试官提问逻辑

突然HR来消息问我面的怎么样上一次也问了,等了一天才出结果。我说连环炮提问太刺激了qwq,然后他说结果出了,问我想平静会晚上听还是现在。

那还能等?直接开奖~~~~过了。。约了第二天三面,最后几段路了,冲!

三面 2022-03-08 40min

又是没有八股的一天,甚至没有算法,主要内容是项目和设计以及一些软性的问题(全看临场反应)。没有录音,都是按照面试官思路整理的,附带我现场答题情况,我也尽量还原当时场景。也感谢字节给我 六次面试 的机会。不清楚这次能不能过,发篇面经积积运气吧0.0

  • 先做个自我介绍吧印象里我以为leader面一般就直接开问的

【============项目分割线============】

  • 那你挑你的项目做个介绍巴拉巴拉从设计到部署到开发说了很多
  • 讲讲项目的难点巴拉巴拉讲了一大堆,然后随口说了个没太考虑多线程问题
  • 那你觉得你项目会有多线程安全问题吗会有,本身没做限制,只通过redis自增存点赞等等,其它的没考虑

【============场景分割线============】

  • 那既然用了redis,讲讲缓存一致性问题按照redis和mysql讲了一个获取更新网站版本号写入数据库删缓存示例,。
  • 那你觉得你说的能保证一致性吗不能,可能写数据库写的慢,新来的get请求拿不到缓存读数据库读到了旧版本
  • 我看你前面二面试官问了一些脏读幻读的问题。一面问了二面没
  • 好,那我希望你不紧从redis角度,同时从数据库并发可能产生问题角度答答qwq,没听懂,试探性问了下,大概是从隔离级别讲讲,说了下mysql默认是可重复度,并且配合mvcc和间隙锁是能解决幻读问题的,我觉得默认数据库会实现线程安全(感觉应该答得不满意)
  • 你能讲讲怎么解决吗?感觉我已经和他不在一个频道了,数据库那边说打住,然后我回答前面的问题,先删缓存,加锁写入数据库后更新缓存,中间读缓存时等待
  • 不是很满意,再想想?一致性问题看的不多,全程在引导,但一个陌生的区域短时间思考出来的结果还是不尽人意,最后通过redis key以及版本号操作实现了,得赶紧补补
  • 好现在来点设计问题,日志系统了解吧?不太了解,mybatis自带,微信云托管也可以存储。
  • 如果我要你设计一个日志系统,你能问三个问题你会问什么?完全临时思考得出结论:日志传输用什么协议(对外服务逻辑);日志量级多少(对内设计数据结构和选择合适算法);有没有什么附加功能需要实现(预警等功能);
  • **面试官:如果是我答我会问 什么时候完成;该查询什么资料;商讨实现方案;你回答的太偏向设计了 **我内心直接???这就是职场大佬和在校小菜鸡思维的差距qwq,他意思是应该全面考虑,既要考虑技术实现,又要找到合适的资料以及任务期限。ORZ
  • 现在再来个问题,计算机内核态和用户态概念懂吧,给我讲讲,把我当做小白。好家伙,我也可以当把面试官讲正确答案了是吧。小白、计算机、黑盒、提供操作、隔离、用户态调用api切换内核态,说了一大堆
  • 嗯,你还是说了很多计算机用语,再给你一次机会,把我当成文科生。文科生震怒,理科生流泪qwq,然后我用贩卖机举了个例子,买的人--> 小白;贩卖机--> 计算器;售货系统--> 用户态;底层硬件以及相应售货操作--> 内核态+api;售货机商家、开箱钥匙--> 管理员,总算给他说服了。突然的灵感真不错,也可能是面试官不想继续为难我了
  • **好,现在问几个软性的问题。你说说你的期待,来实习想干什么? **从几个层面讲了讲
  • 最后一个问题,说说你目前是怎么学习的。感觉是看我说的然后给我杀个回马***
  • 面试官翻了翻屏幕,既然提到新技术学习,我看你一面的rabbitMQ答得不怎么样,回去后看了深入学习了吗。解释了一下,我学过rabbitmq,用了但不是很熟悉
  • 那我再给你一次机会,你能不能讲讲RabbitMQ回答下一面的问题。寄!但还好我对我笔记很熟,对他问题不熟,也不知道能回答道他几分满意,把rabbitmq作用,如何保证可靠性,从三个角度分别作答,然后解释了一下我对rabbitmq技术学习的时间不久等等。然后面试结束。

【============算法分割线============】
面试官后面直接开始问你有什么想问的,然后一个电话走了qwq。我的算法呢?之前问HR第三面注意点,还特地强调算法一定要过,hh。
【============反问分割线============】

  • 实习生干什么工作?
  • 介绍下部门?
  • Java后端开发在里面负责的是什么工作?
  • 有什么建议?建议不要问这个问题qwq

上面某些内容都是整理面经的时候内心调侃,整的来说字节面试的质量感觉是蛮高的,面试官引导以及提问角度都难以复现,根据你描述的你简历写的你表现都会随时切换,还是要锻炼临场发挥,本面经仅作为参考~
作为双非大三找实习实属不易,很多公司都没有面试机会,唯一两次面试还是字节给的,一次日常一次暑期,还是非常感谢,如果这场过了后续更新一些面试经验~

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
我们都知道,新域名在百度搜索引擎中是有一个沙盒期的,在沙盒期内,百度会对网站进行观察,过了这个沙盒期的考核之后,新域名才算是被百度所认同的。老域名顾名思义早就过了沙盒期,在对于信任度上是远远优于新域名的,那么老域名对百度收录的影响到底有多大呢,下面怀米网就和大家简单介绍一下。 老域名对百度收录有帮助吗 老域名在各大搜索引擎的数据库里曾经被收录过,会保存在历史数据库里,当你重新启用时,历史数据库里的信息将被重新激活,甚至上线就直接收录。一般来说,刚上线没多久的新站,就算你的内容和外链做的再好,在短时间之内都不会有什么排名,就算你给网站疯狂做了大量外链让它有了排名也会被K掉,因为搜索引擎会觉得你的网站短期内增加太多外链不正常。不过如果是老域名的话,那结果就不同了,为什么呢?因为搜索引擎已经把老域名从数据盒中挑离出来,因此如果是突然在短时间内增加了较多的外链的话,老域名在一般情况下都是不会被K的,所以说域名历史越久的,搜索引擎给予它的权重就会高一点。 老域名对百度收录的影响 一、百度注重域名的注册时间和域名是否有做站经历,这个结论以前的站长前辈已经说过了,但是没有拿出证据; 二、有一个比较老的域名,即使你的站点比较新、长时间未更新过,一旦更新了,百度还是会比较快的收录并放出来; 三、由之前观察所知,百度对有一定年限的域名收录放出之后不会再隐藏,这个是新域名无法比拟的,说明百度不但比较喜欢老域名,而且对老域名赋予的权重并不会因为域名更改不同的网站而降为0; 四、对于百度是否对老域名收录之后的排名是否有一定照顾暂时未能得到证明。 以上就是关于老域名对百度收录影响的介绍,希望对大家有所帮助。我们都知道,新域名在百度搜索引擎中是有一个沙盒期的,在沙盒期内,百度会对网站进行观察,过了这个沙盒期的考核之后,新域名才算是被百度所认同的。老域名顾名思义早就过了沙盒期,在对于信任度上是远远优于新域名的,那么老域名对百度收录的影响到底有多大呢,下面怀米网就和大家简单介绍一下。 老域名对百度收录有帮助吗 老域名在各大搜索引擎的数据库里曾经被收录过,会保存在历史数据库里,当你重新启用时,历史数据库里的信息将被重新激活,甚至上线就直接收录。一般来说,刚上线没多久的新站,就算你的内容和外链做的再好,在短时间之内都不会有什么排名,就算你给网站疯狂做了大量外链让它有了排名也会被K掉,因为搜索引擎会觉得你的网站短期内增加太多外链不正常。不过如果是老域名的话,那结果就不同了,为什么呢?因为搜索引擎已经把老域名从数据盒中挑离出来,因此如果是突然在短时间内增加了较多的外链的话,老域名在一般情况下都是不会被K的,所以说域名历史越久的,搜索引擎给予它的权重就会高一点。 老域名对百度收录的影响 一、百度注重域名的注册时间和域名是否有做站经历,这个结论以前的站长前辈已经说过了,但是没有拿出证据; 二、有一个比较老的域名,即使你的站点比较新、长时间未更新过,一旦更新了,百度还是会比较快的收录并放出来; 三、由之前观察所知,百度对有一定年限的域名收录放出之后不会再隐藏,这个是新域名无法比拟的,说明百度不但比较喜欢老域名,而且对老域名赋予的权重并不会因为域名更改不同的网站而降为0; 四、对于百度是否对老域名收录之后的排名是否有一定照顾暂时未能得到证明。 以上就是关于老域名对百度收录影响的介绍,希望对大家有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

404name

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值