- 博客(4)
- 收藏
- 关注
原创 开发实践-集合多字段相同比较
本文提出了一种优化方法来检测列表中对象特定字段的重复值。常规方案使用多重循环或stream操作,而作者采用单次循环结合HashSet:遍历列表时拼接四个目标字段作为唯一标识,通过HashSet.add()的返回值判断是否重复。该方法时间复杂度为O(n),空间复杂度O(n),比多重循环更高效。示例代码清晰展示了实现逻辑,适用于需要快速检测字段级重复的场景。
2025-08-01 10:33:50
163
原创 Spring-循环依赖小记
摘要:本文介绍了Spring框架中循环依赖问题的解决方案。循环依赖指多个Bean相互引用形成闭环。Spring通过三级缓存机制解决该问题:一级缓存存放完整Bean,二级缓存存放早期实例,三级缓存存放对象工厂。二级缓存能处理简单循环依赖,但无法解决AOP代理问题,三级缓存通过ObjectFactory延迟生成代理对象,确保单例一致性。文章还对比了延迟与非延迟代理生成的时机差异,并建议从设计层面避免循环依赖。作者最后提出对延迟机制的理解困惑,认为"延迟"更侧重决策时机而非时间先后。
2025-07-31 20:17:51
824
原创 Redis-String底层结构小记
Redis底层使用redisObject结构统一管理数据,包含类型、编码、引用计数等元信息,支持多态操作和内存管理。String类型采用SDS(简单动态字符串)实现,通过预分配和惰性释放优化性能。Redis根据内容长度选择不同编码方式:int编码存储整数,embstr编码存储短字符串(≤44字节),raw编码存储长字符串。SDS结构在3.x版本包含len、free字段,5.x版本优化为更紧凑的存储。Redis通过预分配策略(小字符串双倍扩容,大字符串每次加1MB)和惰性释放机制提升字符串操作效率。
2025-07-29 20:06:09
370
原创 Spring-单例bean小记
本文介绍了Spring框架中单例bean的概念与实现方式。单例bean指容器中只有一个共享实例的对象,是Spring默认作用域。文章详细讲解了五种实现方式:1)饿汉式(容器启动时创建);2)懒汉式(首次请求时创建);3)静态内部类;4)双重检查锁(DCL);5)枚举(天然单例特性)。同时分析了单例bean的线程安全问题,指出无状态单例是线程安全的,而有状态单例可能不安全。还探讨了序列化可能破坏单例的解决方案(readResolve方法)。最后列举了单例bean的适用场景,如工具类、工厂类、配置信息等。
2025-07-10 16:08:11
857
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人