某中厂一面(八股盛宴)

1.自我介绍+项目相关
2. Redis 的 Set 底层是怎么存储/实现的?
3. 多线程下,线程之间的通信方式有哪些?
4.. 事务的“一致性”是怎么保证的?
5. 跳表底层是怎么实现的?
6. 项目中使用Redis做限流,具体是怎么防止刷单的?
7. AQS底层是怎么实现的?
8. 多线程下,控制资源并发访问(并发控制)有什么具体的方式或方法?
9. 事务的“隔离性”(Isolation)是怎么保证的?
10. 如何限制“一人一单”?
11. 为什么会有垃圾回收器(GC)?在 JVM 中,什么是“垃圾”?
12. 你是怎么理解数据库的事务的?
13. 场景题:如果把所有用户的下单ID存入一个优惠券的 Set 中,会导致“大Key”问题。大Key会给系统性能带来什么影响?如何解决或规避大Key问题?
14. ReentrantLock 是怎么实现的?
#我的求职进度条# #发面经攒人品#
全部评论

相关推荐

04-21 12:38
已编辑
门头沟学院 Java
自我介绍和实习省略,实习问了两个相关的,部分八股,无深挖大概20min,手撕了20minQ4:你在项目中使用了Redis Zset,它是用来做什么的?A4:用于实现的定时发布功能。使用score存储时间戳,按时间戳排序。通过Spring Task定时任务每秒扫描,查询当前时间戳范围内的帖子并修改状态为已发布。考虑过使用消息队列,但因实际QPS较低选择了Redis Zset。Q5:Zset的数据结构是怎样的?A5:由跳表和哈希表实现。哈希表用于O(1)时间复杂度查询key对应的score。跳表是多级索引结构,类似B+树但更灵活。叶子节点是单链表,按顺序串联。索引节点随机分布,没有严格的树高要求。Q6:B+树是什么?为什么使用它?A6:是多叉树,MySQL InnoDB引擎的默认存储结构。主要解决索引和排序问题。相比哈希表,B+树能维护有序性。节点大小通常为16KB页,减少IO次数。目标是构建宽矮的树,减少访问节点数。Q7:请解决一道编程题(股票买卖问题)A7:初始问题:一次买卖,用last维护前i-1天的最低价格,计算最大收益。变种问题:必须完成两次买卖,不能当天买卖。Q8:你有什么问题想问我们?A8:询问部门具体业务:生活服务营销部门,做抖音生活服务业务的营销相关。技术方向:传统Java后端和智能体都有。面试结果反馈时间:预计几天内。感觉面试官也不太感兴趣,仅做记录无参考价值。
查看5道真题和解析
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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