1.1.1 单例模式
单例模式常见的2种模式:饿汉式和懒汉式。
饿汉式和懒汉式的比较:
1:饿汉式实现方式简单,唯一的不足对实例不能延迟加载
2:懒汉式可以使用延迟加载,不过要用到同步关键字反而降低了系统性能。
除了上面两个方式,还有一个方式:使用内部类来维护单例的实例。使用内部类的方式实现单例,即可以做到延迟加载,也不必使用同步关键字。是一种比较完善的实现。
public class StaticSingleton {
privatestatic class SingletonHolder {
privatestatic StaticSingleton instance = new StaticSingleton();
}
publicstatic StaticSingleton getInstance() {
returnSingletonHolder.instance;
}
}
注意以下情况有可能破环单例:
1:通过反射机制,强行调用单例类的私有构造函数,生成多个实例
2:通过串行化和反串行化,可以生成多个实例