字节提前批飞书Java一面面经

1面,52min,在牛客网, 面试官感觉是go选手。
  1. 先自我介绍一下
  2. 实习里做的东西(12min)
  3. 商城项目里OAuth2.0整个流程?(服务端让用户到授权页,授权后回调返一个code,服务端将APP_KEY,APP_SECRET和code传给授权服务器,授权服务器返回Access_token和uid,服务端传这两个给资源服务器拿到用户信息并存进MySQL)
  4. OAuth2.0里state的作用?(没听过)OAuth2.0有什么安全问题?(不会)
  5. 商城项目里消息队列为什么可以用到分布式事务?(我扯了对分布式事务的理解:两条不同连接里要保证逻辑上的事务一致性就是分布式事务。基于BASE通过消息补偿实现最终一致性,举了订单服务和库存服务之间实现分布式事务的例子)
  6. 通过刚才举的例子,下单怎么实现?(我说了两种方案,一种是创建订单等库存服务返回结果再告知用户,下单接口平响高;另一种是下单后直接给用户返回成功结果,若库存那边需要回滚就发消息回滚订单,然后通知商家和用户沟通)
  7. 秒杀系统超卖问题(redisson分布式信号量,商品库存存进redis里扣减)
  8. redisson分布式信号量底层怎么实现的?(提了lua,以及为什么用lua)
  9. MySQL索引为什么可以加快速度,时间复杂度,联合索引在B+树怎么存(联合索引是非聚簇索引,假设建了a,b,c联合索引,那么节点的key是(a,b,c),value是主键,然后取到主键回表到聚簇索引用主键查该主键对应的行记录)
  10. redis里用过哪些数据类型,怎么用的(...)
  11. redis的key淘汰策略(redis有用一个字典维护每个key的ttl,惰性删除:下次访问该key,如果过期就删了,对CPU友好,对内存不友好;定期删除:遍历字典删掉过期的key,对CPU不友好。redis两种删除都用)
  12. 只有这两种吗?(记得还有一种是由用户主动删除的,这个不太清楚了)(后来查了下,是定时删除:在设置key的过期时间的同时,创建一个定时器,让定时器在key的过期时间来临时,立即执行对key的删除操作;对CPU最不友好
  13. 差不多了,做一道算法题:给未排序的数组,O(n)找出最长数字连续序列的长度(差点没做出来,之后说的用hashmap存所有的值,然后遍历map的值v,判断v-1和v+1在不在map,如果在就删掉并统计长度,这样map里每个值只遍历一次)
  14. 反问:刚那道题思路是我说的吗?(差不多吧),有没有二面机会?(要评估),飞书技术栈?(GO比较多,Java也有)。好的,我go也可以接受呜呜呜...

许愿二面吧。
#字节跳动秋招提前批##字节跳动##面经##校招##java工程师#
全部评论
感觉楼主项目是谷粒商城😁
3 回复 分享
发布于 2021-07-29 15:54
楼主在哪个大厂实习
点赞 回复 分享
发布于 2021-07-31 17:06

相关推荐

6 34 评论
分享
牛客网
牛客企业服务