字节后端暑期记录(二周目)

Timeline

4.11 一面

4.16 二面

4.21 接了团子推了字节三面

5.12 在团子想跑路了,于是厚脸皮问hr能不能继续推进

5.13 把字节流程舔回来了 字节hr太好了,不计前嫌

5.14 三面

5.15 hr面

一面(1h)

  1. 拷打实习,深挖了很多细节,比如为什么这么设计,当时做技术方案的时候考虑了哪些方面,当时的QPS是多少,用户流量是多少,整体链路耗时怎么观察的,第三方服务接入时考虑了哪些因素,goroutine池的配置当时是做了哪些考量
  2. Golang相关:
  3. Golang知道哪些并发模式,你觉得哪个更好,为什么
  4. 在使用channel的时候有哪些需要考虑和注意的地方
  5. 操作系统:
  6. 进程和线程的区别
  7. 线程里有哪些字段(被问住了,说的非常不好,扯了点TCB,然后又扯了goroutine中的字段,类比到线程中)
  8. 计算机网络(复盘的时候觉得这块回答的非常不好,面试官的问题都比较泛,自己没能很好的把各个知识点都串起来,有点想到啥说啥,很多其实自己知道但都没表达好):
  9. TCP和UDP的区别,各自的优劣势
  10. 什么场景你觉得用TCP更好,什么场景用UDP更好
  11. 为什么TCP更可靠
  12. TCP拥塞控制
  13. 问了一个很神奇的问题,10亿个int64在内存中存储,至少需要多少内存。觉得没那么简单,但自己又不确定,一直和面试官说内存对齐等等,最后心虚地回答了至少8*100000000个字节的内存。面试完一搜感觉就是这么简单(?
  14. 算法:输入一个非递减数组和一个target,找到target第一次和最后一次出现的位置,若没有则返回[-1, -1]。
  15. 问了下常规问题,最快什么时候入职,能实习多久
  16. 反问:
  17. 业务
  18. 后续面试安排

二面(50min)

氛围较轻松,全程0八股,主要从实习出发问问题,记录下几个印象深刻的问题

  1. 如果让你设计一个用户权限系统,需要维护缓存和数据库的一致性,你会怎么设计?(因为是权限系统,数据需要保证强实时性,从保证强实时性出发,以常规旁路缓存为基础做了一些修改,面试官很满意。)
  2. 前段时间支付宝出了一个线上bug,给不该打折的用户打了折,如果你在业务上遇到这种线上bug,你的排查和补救的思路是什么。(说了前期做好链路追踪和埋点,出了问题能快速定位并补偿,面试官补充说还应该观察服务投放的用户量是否符合预期等等做一些服务熔断操作,如quota配额)
  3. 展开聊了下redis哈希表的底层和设计,为什么原子,什么业务场景适合用redis的哈希表

最后一道算法题:k个一组反转链表

全部评论
不跑路了 效忠团子
点赞 回复 分享
发布于 05-20 17:25 北京
Golang知道哪些并发模式,你觉得哪个更好,为什么?这个问题的答案是啥啊?就是回答channel,select多路复用,协程池这些吗?
点赞 回复 分享
发布于 04-14 15:16 广西
佬面的什么岗
点赞 回复 分享
发布于 04-14 12:38 北京

相关推荐

React的生命周期方法是指组件在其生命周期中的不同阶段可以调用的内置方法。这些方法包括以下几个阶段:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=8fdf5cbfd63b4a8a8e6491e5c03b513f1. 挂载(Mounting):在这个阶段,组件被创建并插入到DOM中。constructor(props): 在创建组件时被调用,用于初始化state和绑定事件等。static getDerivedStateFromProps(): 在构造函数之后,render函数之前被调用,允许基于传入的props来改变state。render(): 用于生成组件的输出。componentDidMount(): 在第一次渲染之后被调用,允许执行必要的初始化操作,如请求数据、发起网络请求等。2. 更新(Updating):在这个阶段,组件根据新的props或state进行重新渲染。static getDerivedStateFromProps(): 在构造函数之后,render函数之前被调用,允许基于传入的props来改变state。shouldComponentUpdate(): 可用于跳过渲染。render(): 用于生成组件的输出。getSnapshotBeforeUpdate(): 在新DOM被插入之前被调用,允许获取最新的DOM状态。componentDidUpdate(): 在DOM更新之后被调用,允许执行必要的操作,如DOM操作、动画等。3. 卸载(Unmounting):在这个阶段,组件被从DOM中移除。componentWillUnmount(): 在组件即将卸载和销毁之前被调用,允许执行必要的清理操作,如取消网络请求、清除定时器等。这些生命周期方法提供了控制和管理组件生命周期的能力,可以用于处理异步操作、执行必要的DOM操作、管理状态等。
点赞 评论 收藏
分享
评论
2
26
分享

创作者周榜

更多
牛客网
牛客企业服务