未验证 提交 5d197fff 编写于 作者: 郑永川 提交者: GitHub

Merge pull request #311 from xiangflight/master

已解决冲突,增加单例的另一种实现
......@@ -151,7 +151,29 @@ uniqueInstance 采用 volatile 关键字修饰也是很有必要的。`uniqueIns
使用 volatile 可以禁止 JVM 的指令重排,保证在多线程环境下也能正常运行。
(五)枚举实现
(五)静态内部类实现
这种实现方式的原理:当静态类加载时,静态内部类没有加载进内存。只有当外部调用`getInstance()`方法,静态内部类才会被加载并实例化一个单例的对象,之后每次
调用`getInstance()`都会获取相同的对象。此方法不需要同步。
```java
public class Singleton {
private Singleton() {
}
private static class SingletonHelper {
private static final Singleton INSTANCE = new Singleton();
}
public static Singleton getUniqueInstance() {
return SingletonHelper.INSTANCE;
}
}
```
(六)枚举实现
这是单例模式的最佳实践,它实现简单,并且在面对复杂的序列化或者反射攻击的时候,能够防止实例化多次。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册