3.18飞书面试(58min)

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,那你能怎么办呢?答:
    • 重写STU类的hashcode函数。
  • 接上一个问题,除了重写hashcode函数,还需要做什么其他的吗?
    • 答:不知道(我看了源码,好像确实只需要重写hashcode)

6. 问go

  • 我给你一个结构体和两个管道,你判断一下这两个管道哪个性能更好一点?
type struct{
   xxxxxxxxx...
} s

var c1 = make(chan s)
var c2 = make(chan *s)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值