单例模式复习:网站计数器懒汉与饿汉模式 Java 代码实现及注意要点
以下是单例模式中计数器的懒汉模式和饿汉模式的 Java 代码及测试类: ```java // 饿汉模式 class CounterEager { private static CounterEager instance = new CounterEager(); private CounterEager() {} public static CounterEager getInstance() { return instance; } } // 懒汉模式 class CounterLazy { private static CounterLazy instance; private CounterLazy() {} public static CounterLazy getInstance() { if (instance == null) { instance = new CounterLazy(); } return instance; } } // 测试类 public class CounterTest { public static void main(String[] args) { CounterEager eagerCounter1 = CounterEager.getInstance(); CounterEager eagerCounter2 = CounterEager.getInstance(); System.out.println(eagerCounter1 == eagerCounter2); // 应输出 true CounterLazy lazyCounter1 = CounterLazy.getInstance(); CounterLazy lazyCounter2 = CounterLazy.getInstance(); System.out.println(lazyCounter1 == lazyCounter2); // 应输出 true } } ``` 对于这段代码,需要注意以下 3 点逻辑: 1. 懒汉模式在多线程环境下可能会出现线程安全问题,需要考虑同步机制。 2. 饿汉模式在类加载时就创建实例,可能会造成资源浪费,如果实例创建开销大且不一定会使用到,就不太适合。 3. 测试类中的比较操作是为了验证单例模式是否成功,确保获取到的实例始终是同一个。 ######[AI写代码神器 | 379点数解答 | 2024-11-21 20:44:14]
- Java 实现复制粘贴功能:打造简易文本复制粘贴程序(GPT | 1497点数解答 | 2024-08-25 09:40:33)413
- 解决数据库“dm.jdbc.driver.dmexception: 数据溢出”问题的全步骤指南(阿里通义 | 598点数解答 | 2024-10-15 15:48:38)314
- 达梦数据库数据溢出问题排查及多维度解决方法(阿里通义 | 403点数解答 | 2024-10-15 15:48:41)1170
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)351
- 工程师必知:软件系统用户文档编写九大要点揭秘(百度文心 | 350点数解答 | 2023-11-09 18:23:53)197
- C++统计数组中大于首元素个数的实现与优化指南(DeepSeek | 1123点数解答 | 2026-03-20 21:48:51)25
- 用 Python 生成可跳转至 “47.243.96.125:41736” 的二维码,还能扫描测试!(阿里通义 | 568点数解答 | 2024-08-27 16:40:38)274
- 用Python轻松创建并扫描二维码,一键跳转指定网站!(讯飞星火 | 532点数解答 | 2024-08-27 16:44:03)206
- Spring Boot 打造 MallShop 购物商城:多角色权限、全业务功能的 Web 应用奇迹 (GPT | 1095点数解答 | 2024-12-09 14:06:47)371
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)322
- 单例模式复习:网站计数器懒汉与饿汉模式代码实现及测试,附注意事项(阿里通义 | 512点数解答 | 2024-11-21 20:41:59)206
- 单例模式复习:网站计数器懒汉与饿汉模式 Java 代码实现及注意要点(字节豆包 | 379点数解答 | 2024-11-21 20:44:14)201