- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 字符串为什么不建议作为synchronized的锁对象
使用特定的锁对象而不是字符串进行同步是推荐的最佳实践。这种方式避免了字符串常量池带来的潜在问题,确保锁的唯一性和同步操作的安全性。在多线程环境中,这样的做法可以避免意外的锁共享,提高程序的稳定性和可维护性。字符串常量池是 JVM 用于优化内存和提高性能的一种机制,通过共享相同内容的字符串对象来减少内存开销。由于字符串常量池的存在,直接使用字符串字面量作为锁对象可能导致意外的锁共享。因此,在需要细粒度控制的场景中,推荐使用独立的锁对象来实现同步。
2024-06-07 14:21:16
1409
1
原创 ApplicationEventPublisher详解
在这里我们就看到了,Spring底层对ApplicationEvent事件和PayloadApplicationEvent事件的处理:如果发布的直接就是ApplicationEvent类型的事件,那么就直接转换成ApplicationEvent类型,而如果不是ApplicationEvent类型的事件,那么就是我们所说的Object类型的事件,就会帮我们封装成PayloadApplicationEvent(ApplicationEvent子类),并将Object类型的事件信息存储到payload属性中。
2024-05-08 11:20:01
4476
原创 策略模式介绍、使用(项目中如何使用策略模式)
策略模式是一种行为型设计模式,它允许在运行时选择算法的行为。这种模式定义了一系列的算法,将每个算法封装起来,并且使它们可以互相替换。策略模式使得算法可以独立于客户端而变化,也让算法的变化不会影响到使用算法的客户端。策略模式通常涉及以下几个角色:环境类持有一个对策略对象的引用,并且可以通过策略对象执行具体的算法。通常是客户端直接使用的对象。策略接口或抽象类,定义了一系列算法族,其中声明了算法的抽象方法。实现了策略接口的具体算法,是策略模式中的各个算法的具体实现。
2024-05-08 10:58:27
494
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人