手撕rocketmq? 吓尿了
点赞 评论

相关推荐

03-27 12:07
已编辑
北京中南海业余大学 Java
全程追问,压力很大(不过给的也确实多,可惜鼠鼠没把握住机会...哎),没有手撕,但是面试官会给场景让你说思路。面试官人也挺好的,引导式提问,不是纯刁难。只会八股确实不够用,着重考查实际能力。很多东西确实没有准备到,只能说好好复盘思考吧!1:讲一下你实习经历里,做的比较好、或者对你来说最有挑战的部分。2:你用 Redis 分布式锁的时候,锁的超时时间是怎么确定的?设置的多大?3:如果业务执行时间超过了锁的超时时间,会发生什么?4:加锁的执行过程中,服务宕机了,会有什么问题?对应的解决方案是什么?5:旁路缓存模式(查询先查缓存,无则查库写缓存;更新先更数据库,成功后删缓存),什么极端场景会出现缓存与数据库长时间不一致?6:上面这个长时间不一致的场景,有什么解决方案?7:一张表有 a、b 两个字段,分别建了单列索引,查询语句 where a=x and b=y,MySQL 是怎么决策用 a 索引还是 b 索引的?8:Java 服务线上发生内存溢出 OOM,你会怎么排查定位?步骤是什么?9:JVM 进行 GC 的时候,怎么判断一个对象是不是垃圾,能不能被回收?10:Java 并发的组件 / 类你有用过哪些?举一个实际开发中使用的具体场景。11:设计一个场景:异步发起 100 个任务请求外部接口,每个接口返回一个 int 值,并发执行后,统计这 100 个结果中的最大值,你会怎么设计?
查看11道真题和解析
点赞 评论 收藏
分享
● 项目中使用Redis做限流,具体是怎么防止刷单的?● 如何限制“一人一单”?(追问:如果用户ID不是自增的,怎么限制?-> 引出用 Set)● Redis 的 Set 底层是怎么存储/实现的?● 跳表(SkipList)底层是怎么实现的?● 这个项目为什么选择用 Redis 来实现?● 场景题:如果把所有用户的下单ID存入一个优惠券的 Set 中,会导致“大Key”问题。大Key会给系统性能带来什么影响?如何解决或规避大Key问题?● SQL 手撕:有一张成绩表(包含字段:学生姓名、课程名、分数),请查出所有选修课程分数都大于80分的学生姓名。● 你是怎么理解数据库的事务的?● 事务的“一致性”(Consistency)是怎么保证的?● 事务的“隔离性”(Isolation)是怎么保证的?(引出 MVCC)● MVCC(多版本并发控制)底层是怎么实现的?● 多线程下,控制资源并发访问(并发控制)有什么具体的方式或方法?● Java 中有哪些具体的锁?● ReentrantLock 是怎么实现的?● AQS(AbstractQueuedSynchronizer)底层是怎么实现的?● 多线程下,线程之间的通信方式有哪些?● 为什么会有垃圾回收器(GC)?在 JVM 中,什么是“垃圾”?● TCP 的可靠性是怎么保证的?● 具体讲讲 TCP 的流量控制和拥塞控制是什么?● 了解 HTTPS 协议吗?它的交互通信过程是什么样的?● 你了解哪些对称加密和非对称加密的具体算法?● 设计模式了解过吗?责任链模式是什么样的?● 你认为我们在工程设计中,为什么要使用这些设计模式(主要解决什么痛点)?● 手撕:实现一个栈,包含最基本的 push、pop、top 方法,要求这三个方法的时间复杂度都是 O(1);同时包含一个获取当前栈中最大元素的方法 getMax,时间复杂度也严格要求为 O(1)。
查看24道真题和解析
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务