字节飞书后端实习(两面+hr)已oc
一面
2022.3.18
1. 问项目
首先是问redis是怎么用的
mq的消费是怎么写的呢?
mq如何保证消息消费的可靠性
你在项目中用到了本地缓存,放在了业务代码内存中。那如果签到一半你的项目突然崩了,本地缓存都消失了,那不是会出问题啊?
用lua脚本实现令牌桶的具体是怎么实现的?
你的令牌桶判断了每次填满所需要的时间,那如果说你的桶只有100,然后有1000条消息并发,那不是会突然间处理100条,然后再拒绝掉其他的,待会又再突然间处理掉100个,那不是很周期?怎么处理
为什么用lua脚本?为什么不直接用java的调用?
2. 问数据库(面试官说既然lua是原子性的,那不如说说数据库的原子性?)
说说数据库事务的原则?ACID
展开说一下ACID每一个(我的一致性答得稀烂,口胡过去了,啊吧啊吧)
说一下事务的隔离级别有哪些,mysql用哪个,可重复读还有什么问题?
你刚刚说可重复读都那么完美了,为啥还需要串行化读呢?(口胡)
3. 问计算机网络
讲一下HTTPS的通信流程
- 这里我脑抽了直接从我到腾讯云申请证书开始讲...说到后面乱七八糟,面试官说你直接从客户端请求服务端开始讲就行了...
ssl证书是如何保证通信的?如何保证不被篡改?
ssl证书由ca机构颁发嘛,怎么判断这个厂家可信?怎么确定厂家的信息没有被篡改?(不知道。。一下给我整蒙了,答不上来)
了解中间人攻击吗
那如果自定义证书呢?消息会不会被中间人攻击
回马枪又问了一句B+树和B树的区别?(口胡叭叭过去了,我猜B树数据是存在每一个节点里的,瞎吹发现好像蒙对了)4. 做题:做过,大概十分钟做出来了。41. 缺失的第一个正数
5. 问java
你说你看过hashmap源码,那如果我要存两个对象,假设是一个STU类,他们内部所有的值都是相同的,但是他们就不是两个相同的对象,这时候map会判定他们到同一个桶内吗?
- 回答:应该...不会吧...他们是根据对象的类的hashcode分配的桶,如果不同的对象hashcode也不同。面试官这时候好像也不是特别确定,不知道是不是我答错了。
接上一个问题,如果我非要存两个STU对象,而且我非要不设置id,那你能怎么办呢?答:
- 重写STU类的hashcode函数。
接上一个问题,除了重写hashcode函数,还需要做什么其他的吗?
- 答:不知道(我看了源码,好像确实只需要重写hashcode)
6. 问go
- 答:不知道(我看了源码,好像确实只需要重写hashcode)
我给你一个结构体和两个管道,你判断一下这两个管道哪个性能更好一点?(有点刁钻,涉及到逃逸分析和go的传参方式)
type struct{ xxxxxxxxx... } s var c1 = make(chan s) var c2 = make(chan *s)
二面
2022.3.22
自我介绍
介绍完问我上课有学什么吗
问实习经历
大概了解了一下实习所做的内容和实习时项目的人员组织。
问了点小八股
了解tcp的滑动窗口吗?
那你顺便就说说拥塞控制吧!
线程和进程和协程的区别是什么?
那你顺便说说进程间通信的方式吧?
你说的进程间通信你都有用过吗?
- 没有,无语了
做个题吧!
- 没有,无语了
请你写一个单例模式,并且运行程序证明你的单例模式确实是单例的。
我构造函数忘记加private,他问:你单例的构造函数还能给别人调用?
类的那个属性需要设置为volital,他问:你知道volital具体有什么用吗
leetcode原题:25. K 个一组翻转链表
反问
你觉得你对我有啥建议
- 你才大三,没啥考的,无非就是考考八股考考题,问你分布式难不成你给我说的头头是道?(个人内心总结,非原话)。
hr面
2022.3.29
- 怎么学习的
- 学习过程的困难?
- 以往实习遇到的困难?怎么解决的?
- 上一段面试的leader怎么评价你的实习经历?
- 你希望到我们公司能有什么收获呢?
可能还有一些忘了,但是大体上就是这些。答的时候偏向技术回答了,但是对方似乎想要获得更偏人际交流方面的回答。
电话口头oc
2022.4.2 电话口头oc了,截至2022.4.7未收到邮箱oc通知。
正式oc
2022.4.7 通知oc了
#字节跳动##实习##面经#