3.18飞书面试(58min)
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. 缺失的第一个正数 - 力扣(LeetCode) (leetcode-cn.com)
5. 问java
- 你说你看过hashmap源码,那假设我要存两个对象,假设是一个STU类,他们内部所有的值都是相同的,但是他们就不是两个相同的对象,这时候map会断定他们到同一个桶内吗?
回答:应该…不会吧…他们是根据对象的类的hashcode分配的桶,假设不同的对象hashcode也不同。面试官这时候仿佛也不是特别确定,不晓得是不是我答错了。
- 接上一个问题,假设我非要存两个STU对象,而且我非要不设置id,那你能怎么办呢?答:
- 接上一个问题,除了重写hashcode函数,还需要做什么其他的吗?
答:不晓得(我看了源码,仿佛确实只需要重写hashcode)
6. 问go
我给你一个构造体和两个管道,你判断一下这两个管道哪个性能更好一点?
- typestruct{
- xxxxxxxxx...} s
- var c1 =make(chan s)var c2 =make(chan*s)
复制代码 |