Java中实现Singleton模式
来源:互联网 发布:中拍协网络拍卖公告 编辑:程序博客网 时间:2024/05/19 13:27
以前让我用Java实现Singleton模式,我总是很快地给出如下实现:
public class A { private static A m_instance = null; private A() { } public static A getInstance() { if (m_instance == null) { synchronized (A.class) { if (m_instance == null) { m_instance = new A(); } } } return m_instance; } }
我认为这段代码既考虑了并发,也实现了Lazy Initialization,从没想到这段代码还会有问题。今天在huyyxy的博客上发现这段代码可能会由于JVM的优化造成错误。该文中给出了另一种方法:
public class Foo { private static class FooHolder { static final Foo foo = new Foo(); } public static Foo getFoo() { return FooHolder.foo; } }
该方法利用了jvm类加载时的特性:第一次使用FooHolder时才初始化FooHolder的foo静态成员。即简洁又完全正确,推荐给大家。
- Java中实现Singleton模式
- java中singleton模式与延迟初始化实现方式总结
- Java中设计模式(2) Singleton模式
- 在AX中实现Singleton模式
- javascript中Singleton设计模式的实现
- javascript中Singleton设计模式的实现
- 单例模式(Singleton)--Java实现
- 几种Singleton模式的java实现
- Java 实现单例(Singleton)模式
- singleton模式的java代码实现
- 【JAVA实现】单例模式(singleton)
- 设计模式 之 Singleton(Java实现)
- Java单例模式(Singleton)以及实现
- 在Java中应用设计模式--Singleton
- 在Java中应用设计模式--Singleton
- 在Java中应用设计模式--Singleton
- 在Java中应用设计模式--Singleton
- 在Java中应用设计模式--Singleton
- 如何提高外部调用Office的速度?
- 添加一个proc下的子目录
- flash播放器JW Player使用方法
- linux 下 C 语言 编程 undefined reference to 'pthread_create'问题的解决
- 在.NET中使用Javascript作为脚本语言
- Java中实现Singleton模式
- 解决eclipse-helios中Errors running builder JavaScript Validator的问题
- hadoop mapper&reducer调试 + 测试驱动
- 不记得撞得有多痛了,可是,那个电线杆,永远都在
- 忙忙,烦烦烦。。
- STM8|STM32 看门狗使用
- explicit和QT中文字符乱码解决方法
- 保持健康,锻炼身体
- 谈谈林锐书中的内存思考题