单例模式

来源:互联网 发布:mac怎么换浏览器 编辑:程序博客网 时间:2024/06/05 02:33

有些对象我们只需要一个,比如:配置文件、工具类、线程池、缓存、日志对象等


饿汉模式


public class SingletonClass {//1.将构造方法私有化,不允许外部直接创建对象private SingletonClass() {}//2.创建类的唯一实例,使用private static修饰private static SingletonClass instance = new SingletonClass();//3.提供一个用于获取实例的方法,使用public static修饰public static SingletonClass getInstance() {return instance;}}

SingletonClass s1 = SingletonClass.getInstance();


懒汉模式


/** * 懒汉模式 * @author Administrator * */public class SingletonClass2 {//1.将构造方法私有化,不允许外边直接创建对象private SingletonClass2() {}//2.创建类的唯一实例,使用private static修饰(仅声明)private static SingletonClass2 instance;//3.提供一个用于获取实例的方法,使用public static修饰public static SingletonClass2 getInstance() {if (instance == null) {instance = new SingletonClass2();}return instance;}}


区别:饿汉模式的特点是加载类时比较慢,但运行时获取对象的速度比较快,线程安全

懒汉模式的特点是加载类时比较快,但运行时获取对象的速度比较慢,线程不安全

0 0
原创粉丝点击