单例模式
以下在单线程的情况理解改概念
懒汉式
- 懒汉式在类加载时不初始化,延迟加载。(配置文件)
- 饿汉式在类加载时初始化,加载慢,获取对象快。
- 饿汉式是线程安全的,
- 懒汉式需要加synchronized,否则不安全。
如何使用:
-
将类的构造器声明为私有化,这就使得外部无法通过构造函数创建这个类的对象了。那么如何创建这个类的唯一那个对象呢?
-
在该类中声明一个静态的私有的该类的变量。不初始化,或初始化为null,这是懒汉式的特点。
-
为该类创建一个对外公共的静态的方法访问该变量,如果该变量为null,创建它
Demo:
在这里插入代码片
饿汉式
如何使用:
-
将类的构造器声明为私有化,这就使得外部无法通过构造函数创建这个类的对象了。
-
在该类中声明一个静态的私有的该类的变量。并初始化它,这是饿汉式的特点。
-
为该类创建一个对外公共的静态的方法访问该变量。
在多线下面我们应该如何考虑
Demo:
在这里插入代码片
在性能方面我们应该如何考虑
Demo:
在这里插入代码片