小米软件开发Java面经

二面:
1、手撕做题:力扣 15.三数之和
2、浅谈实习
3、熟悉 SpringCloud 的哪些组件?
4、项目中用到的是 Seata 的哪种分布式事务模式?底层原理是怎样的?
5、项目中的限流操作是把什么作为限流的资源?
6、代码中一个接口的限流代码是怎么去实现的?
7、假设现在我的服务上有成百上千个接口,现在都需要去做限流熔断的操作,如何基于 Sentinel 去实现?
8、谈谈自定义一个组件集成到 SpringBoot 中,应该做哪些操作?
9、使用过 Java 的哪些 JUC 工具?
10、假设有一个线程 a 和一个线程 b,它们分别有自己的任务 A 和任务 B 需要完成,但是 b 线程需要等待 a 线程执行完任务 A 后才可以执行任务 B,请问有哪些实现方式,越多越好
11、volatile 保证变量可见性的原理?
12、用 synchronized 加锁能否保证可见性?
13、一般业务中通过什么来创建线程池?线程池有哪些核心参数?
14、假设一个场景,项目中用到了线程池,在服务上线前,我依据自己的经验预设了一些线程池的参数,服务真正上线后,面对 C 端的流量我无法保证我预设的参数是最合适的,就需要去动态的调整这些参数,如何去设计一个具备动态性能的线程池?
15、针对问题 14 我提出把核心参数的设置交给配置中心,创建线程池时读取参数就走配置中心读,这样修改后可以实现无感的切换。但是面试官提到,这种方式能实现无感的切换,但是没有办法实现自适应的线程池核心参数调整,还是需要手动的去调整参数。面试官引导说第一时间想的不应该是去修改,而是如何观测这些参数的变化,然后让先设计一下如何观测线程池核心参数的变化
16、如果要做观测,谁来观测?怎么观测?整个设计的流程是怎样的?
17、Redis 的哈希数据结构有哪些实现方式?
18、针对 Redis 哈希数据结构出现的大 Key 问题,如何去解决?
反问
全部评论
14 15 16 用cat之类的埋点监控流量是否过载吧,要有过载直接告警,再去配置中心改下参数重新上线这样的
点赞 回复 分享
发布于 2025-11-10 14:23 北京

相关推荐

01-14 17:41
已编辑
门头沟学院 Java
一面60min左右自我介绍+项目全流程讲解 15min左右项目提问15min左右(只能回忆一部分)1.SSE与WebSocket的区别?2.构建出的知识库中的数据是如何处理?3.检索出来的结果不够精准,应该如何继续去优化?4.系统性能如何评估?用到的指标是什么?5.短期记忆和长期记忆如何做?6.系统越用越慢,如何反向调优?7.用户引导模型越狱问题如何解决?8.如何在最大程度上减少幻觉问题?场景题10min左右1.利用你学到的知识设计一个秒杀系统?2.除了上述讲的之外在秒杀前中后应该要做什么处理?3.不使用缓存,用数据库层接住全部流量,数据库这层要做什么处理?八股20min1.一条SQL的执行流程?2.MySQL8.0为什么要移除查询缓存?3.Innodb引擎核心模块有哪些?4.索引失效场景?5.Java内存模型如何划分?6.堆和栈的区别?7.JVM如何保证只加载一个类?8.SpringBoot的自动装配?9.SpringBoot的启动流程?二面40min左右项目提问15min左右1.为什么要根据系统重新写一个ID生成器?如何解决数据倾斜的问题?扩容碰到的问题如何解决?2.消息推送的完整链路,已经如何设计高可用和高可靠两个模式?3.10w条消息推送,多久可以推送完?4.如果是100w,10000w数据,系统是否可以抗住?5.有突发紧急任务进来,应该如何处理?6.令牌桶算法?7.在处理哪些场景上用到消息队列?8.rocketmq和kafka的选型?场景题目25min左右1.以京东秒杀商品为背景,秒杀成功之后进行支付,支付成功后要去调我们的扣费接口。但这个过程中也有可能会数据丢失,比如说用户支付完了之后,扣费没调成功,或者其他问题,导致了我们那个订单的状态没更新好。用户未支付,到15 分钟后库存又被还原掉了。针对这个完整的链路,讲一下关键节点的技术要点。2.把支付的一些参数,包括订单号等信息,按照第三方支付平台的要求拼起来加密,产生一个支付流水号。用户支付之后,但是此时和第三方系统通讯的链路断了,如何解决用户付了钱,订单没更新的问题。3.系统没有有随机3%左右的接口访问的时候超时。比较随机,而且分布的接口又不是在同一个接口。像这样的一个生产问问题如何去排查?三面HR面30min(常规问题不做记录)
点赞 评论 收藏
分享
评论
2
24
分享

创作者周榜

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