单例
所谓单例设计模式,即时采取一定的方法保证在整个软件系统当中,对于某个类只能存在一个对象实例,并且该类只提供一个其对象实例的方法(静态方法)
恶汉式
优缺点说明:
-
优点:这种写法比较简单,就是在类装载的时候就完成实例化.避免了线程同步问题
-
缺点: 在类装载的时候就完成了实例化,没有达到Lazy Loading的效果.如果从始至终都没有使用过这个实例,就会造成内存的浪费
-
这种方式基于ClassLoader机制避免了多线程同步问题,不过,instance在类装载的时就实例化,在单例模式中大多数都是调用getInstance方法,但是导致类装载的原因有很多种,因此不能确定有其他方式(或者其他静态方法)导致这个类被装载,这时候初始化instance就没有达到lazy loading的效果
-
结论: 这种单例模式可用,可能 造成内存浪费
代码演示
package com.atguigu.principle.singleton.type1;/***/
public class SingletonTest01 {// 1. 构造器私有化,外部不可以newprivate SingletonTest01() {}// 2. 本类内部创建对象实例// 恶汉破不及待 new 这个 对象private final static SingletonTest01 instance = new SingletonTest01();// 3. 提供一个工友的静态方法,返回实例对象public static SingletonTest01 getInstance() {return instance;}
}更多:[http://victorfengming.gitee.io/design_pattern/](http://victorfengming.gitee.io/design_pattern/)