【校招VIP】小米软件开发Java面经

4天前 收藏 0 评论 0 java开发

【校招VIP】小米软件开发Java面经

转载声明:文章来源https://www.nowcoder.com/feed/main/detail/f30ba05f14774d408a536627b7596322

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 问题,如何去解决?

反问

C 0条回复 评论

帖子还没人回复快来抢沙发