自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除