快手java后端实习生一面面经

官网投的,7.9发的招聘需求,当天投简历,7.11收到hr电话约到7.14一面。
问了hashmap为什么不安全;双亲委派机制;线程池创建传的几个参数什么用;手动出题创建线程池机制的题目考察(核心线程数7个,总线程数20个,queue=50,并发请求100个,分析一下核心非核心线程还有队列的使用顺序);
为什么索引用B+树,介绍B+树的优点;多字段创建索引;索引什么时候失效;分布式事务;事务什么情况下会失效;介绍一下脏读和幻读;事务的隔离级别等问题。
还问了缓存雪崩,缓存穿透,缓存击穿,Redis的持久化机制,rdb与aof的优缺点,还有redis有哪几种数据结构,zset的底层。
还有spring的ioc和aop;什么是动态代理;两种动态代理什么区别(jdk和cglib);bean的生命周期。

项目问了如何确保业务重复下单问题,还有lua脚本和一些加锁的问题,还有消息队列如何确保不重复消费。

这些都答的挺不错的,基本都会,就看印象分如何了。

算法题是一个数组中三个数和为0的数组输出,要求不能重复。做了一半,不知道怎么去重,就直接打印了。
给表达了算法细节上的不足,面试官说没事。

然后等结果。这个阶段投实习太难了,之前寒假去实习问的都很基础,实在不行直接准备秋招了。#牛客AI配图神器#
全部评论
佬你面的哪个部门
1 回复 分享
发布于 07-15 19:43 上海
我这边有很多大厂实习项目可以包装,已经帮助很多同学上岸拿到offer了,感兴趣的同学可以看下我简介中的项目地址
点赞 回复 分享
发布于 07-17 16:14 江苏
当天就出结果了吗
点赞 回复 分享
发布于 07-16 20:03 河南
都答出来也挂啊
点赞 回复 分享
发布于 07-16 17:57 广东
手撕是三数之和,hot100原题
点赞 回复 分享
发布于 07-16 15:25 北京
项目做的是微服务吗
点赞 回复 分享
发布于 07-16 00:22 河南
出结果了吗好兄弟
点赞 回复 分享
发布于 07-15 21:50 北京

相关推荐

08-13 21:43
已编辑
宁波大学 Java
但是被发现没有完整实现怎么办?大家 帮我看看。实现秒杀以及一人一单的策略:1:Redis层面的分布式锁首先将分布式锁的粒度降低,将用户Id与商品Id进行绑定,借助LUA脚本(原子性),先判断是否存在购买标识(幂等性1),没买过就去尝试获取分布式锁,获取成功之后然后再次判断是否存在购买标识,再判断库存是否足够,最后再扣减库存,两次判断减少锁竞争的消耗2:数据库层面的数据修改第一种:开启事务,对数据库的数据进行修改,扣减库存以及添加用户的购买记录,然后在Redis中添加唯一标识可以借助Set进行存储,也可以借助string进行存储。string结构可以实现更加精准的存储,可以存储相关的任务状态,比如已完成,未完成,完成中,同时还可以对过期时间进行单独指定,但是呢,当海量数据下会造成高频的内存碎片,与集群跨槽访问开销Set结构可以以更加高效的查询效率去实现检索判断,约为string的30%,但是呢,无法存储任务状态,存在大Key问题,以及对过期时间只能全局Set的设定无法单个元素的设定。第二种:RabbitMQ提高并发能力(幂等性,可靠性的保证)如果说需要想提高并发能力,可以借助RabbitMQ去异步将数据同步数据库,只在Redis去执行业务的决策,此时RabbitMQ当中只是去对数据进行修改,可以保证最终的一致性,无法保证全局的一致性。1 保证幂等性2,将用户id与商品id创建唯一索引或者唯一约束,避免重复消费添加,添加失败导致事务回退2 保证幂等性3,创建全局唯一Id,可以在Redis业务决策结束后生成,后续与用户id商品id一起传入RabbitMQ,当消息被消费者正常消费后,将唯一id存储到Set当中,消费者消费前对判断Set当中是否存在这个唯一标识id,存在代表以及消费过不存在则未消费过或者将这唯一id借助string类型进行存储,消费者消费前判断string是否可以获取成功,成功则代表已经消费过,不成功则未消费3:定时任务进行校验最后还可以借助xxl-job对Redis数据与数据库数据进行校验改进:1 Redis 持久化与高可用: 需要配置 RDB+AOF 和 Redis Sentinel/Cluster 防止数据丢失和服务中断。2 冷启动/预热: 秒杀开始前,需要将商品库存和必要信息加载到 Redis。
我的AI电子员工
点赞 评论 收藏
分享
评论
10
63
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务