面试复盘 | 字节提前批抖音电商后端开发面经(已OC)

8.4下午4点一面      45分钟
1、项目,RPC相关
2、mysql索引八股,redo log说一说
3、redis zset八股,和红黑树比较,为什么用跳表?我答了个插入删除效率,,,还有吗?不知道了(查到了,麻蛋,还有就是范围搜索直接往后遍历,红黑树还要回溯寻找,最差可能要回溯到根节点!!)
4、redis缓存穿透,缓存击穿,缓存雪崩,继续八股
5、jdk动态代理,String要动态代理的话,用哪个?显然jdk
6、spring bean依赖怎么解决?我说我不会,我猜是加缓存解决。
7、算法:
有一个矩形桩阵,由m x n个梅花桩组成。小明打算从左上角跳到右下角。并且每次只能往右或往下跳一个位置。求一共有多少种跳法?
示例1:m = 3, n = 2 输出:3
解释:3种跳法为 1. 向右 -> 向右 -> 向下 2. 向右 -> 向下 -> 向右 3. 向下 -> 向右 -> 向右
示例2:m = 3, n = 7 输出:28
一开始用二维dp,然后说要优化,我想半天也没想出来,提示才想出来,排列组合。总步数是m+n-2,然后总步数中有m-1向下,所以就相当于排列组合里在y中选x步,最后就是(m+n-2)!/(m-1)!/(n-1)!
反问:
1、对这场面试有什么意见和建议:无可奉告,面试不能告诉面试者相关的信息
2、具体的业务是什么
3、大概多久能出结果:得看hr那边响应速度
1小时以后就打电话了,没接到,发了邮件约了2面
--------------------------------------------------------
8.10下午4点二面(90分钟)面试官很友好,但各种降维打击
1、来个自我介绍吧,来点简历上没有的
2、你在学习的时候,有没有学到什么让自己眼前一亮的东西(hashmap)
3、来讲讲hashmap,你说到了链表和数组,怎么定位到某个值呢
4、容量为什么是2^n呢?
5、你给我写一下具体怎么算的,什么与上2^n-1

6、扩容呢?一个位置的链表怎么转移到新的地方?
7、你之前谈到了分段机制,讲讲,介绍介绍
8、项目中,你觉得自己做的哪个地方可以讲一讲?(令牌桶算法限流)
9、来写一写具体的代码
10、如果是多线程来并发访问呢?怎么解决?CAS+Volatile
11、讲讲CAS?
12、如果不加Volatile,会不会出现并发问题?(有点慌了,应该会出现其他CPU直接取自己的缓存中的数据)
13、时间不多了,来聊聊基础吧,jvm为什么分为堆和栈?堆和栈是什么,具体讲一讲?
14、(自己总结:堆主要解决对象的数据问题,栈主要解决对象的行为问题),诶?你那里在方法里写的int值是属于堆吗?
15、(属于栈)那你不是说堆解决了对象的数据问题吗,(我自己总结的,多多少少有点小问题)没事没事,你讲讲为啥放在栈里,不放在堆里?
16、来聊聊网络吧,http是哪一层协议(顶层的应用层),那DNS是属于底层的哪一层协议呢(应用层。。)
17、将将dns访问过程吧,(开始吟唱),等等,主机怎么把www.baidu.com发给本地DNS服务器呢?(晕了,ARP协议扯了一些),ARP得知道IP地址吧,你现在就只有这个www.baidu.com,(晕了,不太会),没事没事,咱们面试主要找优点聊嘛。
18、时间不多了,来道算法吧(困难)
面试官出题,是LeetCode上的题,写过,但写的不好,dfs+mem深度搜索,最后用例过了,但面试官看起来不太满意的样子
反问:
1、主机怎么发送给DNS服务器的?(笑了笑,比如你windows里,配置静态ip的时候,有一栏就是DNS服务器地址),人傻了,晕了
2、用java还是go,go
3、具体做哪些业务?
4、大概多久能出结果?
5、意见和建议:好好做做算法,你这个写的不好,循环里面调用多个dfs(连忙解释用了记忆集,减少时间复杂度)

总结:项目很重要,还好令牌桶算法我自己敲的,虽然是用lua写的,存放在redis中,不过大致思路对的,手撕也能大致撕出来。基础也很重要,尽量不要硬背,要多加思考背,栽在了DNS这个八股中,菜鸡如我。
还是得复习项目,真没啥可讲的辣鸡小项目,也要自圆其说。。。RPC还得好好准备准备。。。

没有问数据库,redis一些八股。。
半小时后打电话,约了三面
----------------------------------------------------
8.17下午5点三面30分钟
1、自我介绍
2、来做题吧(感谢牛客,感谢大佬,果然是这个题)
2-1:
一个环上有10个点,编号为0-9,
从0点出发,每步可以顺时针到下一个点,也可以逆时针到上一个点,
求:经过n步又回到0点有多少种不同的走法?
举例:
如果n = 1,则从0出发只能到1或者9,不可能回到0,共0种走法
如果n = 2,则从0出发有4条路径:0->1->2, 0->1->0, 0->9->8, 0->9->0,其中有两条回到了0点,故一共有2种走法。
写了两种算法,动态规划和递归,动态规划一开始写的有问题(被指出来了。。)
2-2:LC378变种(链接有问题,不贴了,直接题库搜就行了),用优先队列就行,MXN矩阵,每一行的元素递减,(问了行与行之间有联系吗,没有),求第K大的数
3、utf8和Unicode区别,不太了解。。
4、https讲一下?为什么要非对称加密?都非对称加密行不行
5、进程,线程,协程讲一讲
6、redis八股,哪些数据结构?五种(好像没咋问。。)
7、CXRF是啥,怎么避免(这个没答好。。应该答上token的,脑袋晕了。。)

反问:
1、面评和建议:实习多搞一搞,项目经验少了点
2、业务
3、多久出结果:这几天吧,hr联系你啥的

总结:三面很***觉到面试官是个大佬,都不问项目的(好吧,项目太菜了。。也不屑问。。),上来搞算法,算是A了1道半?一开始动态规划写的不好。
哎,2面到3面一周的时间也没咋好好学习,先给自己几个大嘴巴子

许愿三面过

面试体验:整体很棒,面试官都很和蔼。二面面试官会深入底层一直问,一直引导。

流程:
8.4一面,8.10二面,8.17三面,8.24状态更改为面试已完成,8.30意向书
面试之间挺快的基本上几十分钟就给结果,三面完太慢了,等的让人煎熬。

#字节跳动提前批面试##面经##校招##Java工程师##提前批#
全部评论
字节真的是一面比一面恐怖
1 回复 分享
发布于 2021-08-11 17:23
楼主哪个部门
点赞 回复 分享
发布于 2021-08-04 17:39
老哥也是声哥的RPC项目吗? RPC问得难吗?
点赞 回复 分享
发布于 2021-08-04 18:21
楼主是一个30多岁的男的面试的嘛
点赞 回复 分享
发布于 2021-08-04 21:41
大佬八股文是怎么准备的
点赞 回复 分享
发布于 2021-08-04 22:24
😂😂大佬可以推荐几个八股文的公众号或者git吗
点赞 回复 分享
发布于 2021-08-04 23:29
老哥啥学历
点赞 回复 分享
发布于 2021-08-05 00:39
羡慕楼主啊,一面算法题这么简单,我也是杭州电商,一面就让我做lc79单词搜索😅
点赞 回复 分享
发布于 2021-08-05 02:52
实习还是校招?
点赞 回复 分享
发布于 2021-08-05 12:05
加油
点赞 回复 分享
发布于 2021-08-05 15:59
加油后端大佬
点赞 回复 分享
发布于 2021-08-06 17:07
老哥,二面第九题写啥了,自己项目的代码?
点赞 回复 分享
发布于 2021-08-10 21:05
已码
点赞 回复 分享
发布于 2021-08-11 11:18
用优先队列遍历完数组吗?
点赞 回复 分享
发布于 2021-08-18 07:35
我们都是RPC,都加了令牌桶。😆,我RPC的项目被主管***了,什么心跳风暴之类的,人都麻了
点赞 回复 分享
发布于 2021-08-24 17:40
OC了吗大佬?
点赞 回复 分享
发布于 2021-08-29 23:50
oc了吗 大佬
点赞 回复 分享
发布于 2021-08-30 09:58
大佬三面几号啊
点赞 回复 分享
发布于 2021-08-30 09:58
同三面面试官,问的问题都差不多,但是我是8-23三面完成,还在等意向书。。。
点赞 回复 分享
发布于 2021-08-31 16:04
woc,我现在面的问得差不多
点赞 回复 分享
发布于 2021-10-19 16:08

相关推荐

01-13 21:45
已编辑
门头沟学院 Web前端
当时是微信游戏挂了两三天后约面的,有意思的一点是 hr 多多少少也知道前端的一些东西,硬控我 20 分钟,甚至聊了点 react vue 框架,我怀疑 hr 之前就是做前端,想逗逗小孩子罢了(逃)面试给我的体验还是很不错的,没有做题,没有手撕,更多是看你对技术与项目的思考,是否有自己的独立想法,还有探测知识边界,虽说就深度来说肯定是没有大厂那样厉害,但相比一些其他厂也能聊不少东西### 一面(45min)隔了几天才想起了博客没有补充,记得不是很清楚了,将就写写- 业务介绍,入职时间- 什么时候开始知道和学前端的- Astro 框架简单介绍一下- 用 pnpm?说说项目分包的好处- 讲一下 git rebase,平时怎么解决 conflict 的- 用 React 还是 Vue 多- 用 vite 还是 webpack 多- 他们的区别以及优势和缺点- ts 学的怎么样,讲一下几个常用的工具类型- 如何在类型体操内实现 if 和 for 循环- React 新特性了解的怎么样- React 新 hooks 实践过吗- jsx 编译后的产物是什么- 讲一下代数效应- 看一下你项目封装的 hook- AbortController 以及调用时机(考察副作用清理)- 知道有哪些设计模式- 对测试了解的怎么样,编写测试时要注意的点(e2e, vitest)- 英语水平,给一个文档能看懂多少- 反问  - 除了 react ts 还有什么技术栈  - 本次面试出结果的时间  - 主要工作  - 需要改进的点### 二面 (40min)面试的是部门 ld,一位很稳重的大哥,能感受到颇有强者的气场,这次就项目提问了不少内容,很多开放性的问题可以探讨- 自我介绍- 说一下项目里最难的点- 为什么升级成 monorepo 和 pnpm- monorepo 适合的场景- 实践 monorepo 的时候有没有遇到一些什么问题- 项目的架构,怎么分包的- 项目的发展过程- 团队有几个人,都是自己写的吗- 项目背景- astro 框架是什么- 相比其他框架,astro 卖点在哪- 用过 nextjs 吗- 你喜欢 astro 框架吗,说说优劣- react 平时自己开发的时候有哪些规范和注意点- 你觉得 ts 的优点是什么- 有些工作是 ts 推导类型的修复,能接受吗- 没有实习经历吗- 英文文档读过吗- 了解公司实习生职责吗- 从哪里找到招聘信息的- 需求有 ddl,能接受吗- 简单说一下 tauri 项目的难点- rust 是怎么学的- rust 与 ts 的过程宏结合是什么- 为什么想学 rust,你喜欢这门语言吗- vscode 插件是啥,作用?- 反问  - 职责(ld)  - 业务|基建?(业务)  - 需要改进的地方  - 还有几轮面试总结:有些复杂场景还是没有接触到,比如 monorepo 的优劣,但是 monorepo 给我的感受就像是一个工具,我知道项目未来会怎么发展,需要一个模式去改善发展了。我个人觉得 monorepo 主要还是为了逻辑分离,提升模块化程度,缺点就是依赖管理复杂,且没有代码修改权限区分。网上的答案也比较类似,比我想的多的就是测试和重构方便 / 构建部署耗时增加。不过针对后者有类似 turbo 这种工具去进行加速### 三面(1h)最友好的一集,面试官把我几个仓库的结构都看了一下。这一次面就是综合知识 + 业务能力 + 认知边界探究了。不过感觉面我的老哥可能面试人的经验不是很多,感觉比我还紧张(无端),自我介绍还是我主动提出的- 自我介绍- 为什么说想做基建- 有给一些大型项目提过 issue 和 pr 吗,出发点是什么- 假如现在有一个日历公用组件要进行开发,你该如何完成他- 假如这个组件需要定制很多地方,你该从哪几个角度去考量- 假如有一个组件,网络上一点资源都没有,需要你从头定制,你的出发点是什么,该怎么做一个迭代- 现在有一个功能,针对他有一批库可以选,该从哪几个角度去考量选什么库- 看你仓库里面有用 js 去写一些 script 运行脚本,他可以用 ts 替代吗,有什么方案,最新的方案是什么,他们之间的优缺点- 刚刚你说到 bun,那么用这个工具的时候遇到过什么问题吗- v8 爆内存的可能原因是什么,有什么工具或者方法去定位(从项目实践优化再到快照拍摄,还有开发上用一些 Weak 对象处理)- 有时候遇到页面卡顿,你的定位思路是什么,解决方案是什么- 看你开源经历里桌面播放器项目那个似乎是 monorepo 又似乎不是,当时改成 monorepo 的想法是什么- 你简历的项目也是用 monorepo,出发点是什么,解决了什么痛点,有什么新问题- webhook 听说过吗,cicd 环境中要注意的是什么,如何从安全上去考量 webhook 的使用- 最近学的一些新东西是什么,了解了哪些好玩的东西- 反问- 团队规模- 团队项目迭代更新方式- 您的职责- kpi or okr- 会因为 ddl 加班吗- 团队会关注新技术吗- 如何针对一个项目提炼一些可复用的方法论整个面试下来耗时最多的就是组件开发考量 + 知识边界探测了,一开始面试节奏也不算好,双方就沟通上还是有点小问题,不过后续节奏好了后就很愉快,整场面试就像是聊天一样互相分享看法和注意点,整个过程聊下来感觉是很舒服的。面完后 hr 马上打电话沟通说这边没啥问题,可以发 offer,就看什么时候方便过来。作为人生中第一个 oc 还是挺开心的,不过当时正好 wxg 在等开奖,而且技术面都过了,所以后续还是忍痛把 oc 拒了。舍得舍得,有舍才有得。复用方法论是今年暑假提出的一个研究课题,起源于之前看别人做 react 最佳实践时总结的一个项目规划管理模式,我自己在我的项目中用 vue 的方式实现了一遍,体验还是不错的,比如页面逻辑强隔离,页面内部 store 管理,专有组件与 hooks,缺点就是可能要编写的代码内容变多了,其次是对于某个被依赖多次的模块需要做好健壮性和完整性考量但是就我自己的项目说很难提出一套全局可复用方法论,更多是特定场景下的复用实践,这点在我这个项目还是有一些感触的
点赞 评论 收藏
分享
神哥不得了:直接去小红书吧,美国用户还多一些
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
评论
18
137
分享

创作者周榜

更多
牛客网
牛客企业服务