【java面试2023】

1.Springboot 自动装配

   EnableAutoConfiguration 只是一个简单地注解,自动装配核心功能的实现实际是通过 AutoConfigurationImportSelector类。

        第 2 步 :

        用于获取EnableAutoConfiguration注解中的 exclude 和 excludeName

@configGuration ->@import+comontScame

2. hashMap:

        HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap

        底层:动态数组,红黑树 

3.线程池 七大核心

        简单描述:当核心线程满了,队列也满了。启动最大线程数。如果最大线程也满了,启动 拒绝策略。线程全部都是 线程工厂创建

corePoolSize 线程池核心线程大小

maximumPoolSize 线程池最大线程数量

keepAliveTime 空闲线程存活时间

unit 空闲线程存活时间单位

workQueue 工作队列

threadFactory 线程工厂

handler 拒绝策略

 

4.redis

雪崩:

        原因:大量Key 同时消失   

        解决:永不过期,集群,定时任务率先你缓存,简单说就是别让key过期

穿透:

        原因:一个请求查找一个不存在的key,导致直接请求到数据库上

        解决:存短期key,拉黑IP,验证参数

击穿:

        原因:热点Key 失效,例如竞拍

        解决: 不失效+互斥锁

redis 为啥速度快:

        1.单线程(省上下文)+合理数据结构

        2.采用非阻塞IO复用机制

        3.定期+惰性+内存淘汰机制

5.GC: 计数器+不可达策略(从根上找GcRoot)
6.getWay:请求 路由对比

7.Nacos: 动态刷新 @refreshScope

8.消息队列

        万级:actionMq+RabbiteMq

       十万级:Rocketmq

        百万级:kafka

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值