面试题精讲
# 尚硅谷java面试题精讲-第三季
https://www.bilibili.com/video/BV1Hy4y1B78T
# 4.spring
# 4.1 spring里的aop
spring5不一样:
# 4.2 spring循环依赖
# 面试题
# 三级缓存解决对象的循环依赖问题
# 循环依赖debug
# refresh方法
# finsishBeanFactoryIniilization
# pripareInstanteSigletons
# doGetBean
# getSingleton
初次走else,返回null
,找不到缓存,则开始创建流程:
# createbean
# docreatebean
createBeanInstance
# addSingletonFactory
# populateBean
# b初始化时填充属性a:
# 循环依赖的总结
# 5.redis
# 题目
# 数据类型
# 五大数据类型的落地应用
# string
# 分布式锁
# hash
# list
# set-无序无重复
# zset
# 5.2 分布式锁
# 面试题
# 改进1-单机加锁
# 改进2 分布式锁
jmeter压测,模拟并发
# 使用事务来删除key
正常情况:
异常情况: 被加塞
另外用户加塞:
导致我自己事务失败. 类似mysql的乐观锁
# 使用jedis+lua脚本 删除key
使用zookeeper的强一致性来解决这个问题
# 综合解决方案
# 总结
https://www.bilibili.com/video/BV1Hy4y1B78T?p=61&spm_id_from=pageDriver
# 5.3 缓存过期淘汰策略
# 最大内存配置
# 定时删除,惰性删除
# 定期删除
# 内存淘汰策略
两种配置方式
# LRU算法
Caffeine 当下最优秀的内存缓存框架的使用与最佳实践+配合Redis做二级缓存 (opens new window)
# 手写lru
# 案例1
构造函数true; 访问顺序
构造函数false: 访问顺序
# 案例2 不依赖jdk
参考AQS
编辑 (opens new window)
上次更新: 2022/08/16, 20:05:05