- //饿汉式
- //单例模式 一个类只有一个对象
- //就像音乐播放器或者迅雷
- //无论打开多少次 只有一个主程序(一个实例)(梦幻就不是)
- public class DemoSingleTest01 {
- public static void main(String[] args) {
- //不能直接new
- //无论调用多少都返回同一个静态变量
- Single01 s1 = Single01.getInstance();
- Single01 s2 = Single01.getInstance();
- System.out.println(s1==s2);
-
- }
- }
- class Single01{
- //构造方法私有化
- // 外部类不能直接调用
- private Single01(){
- }
- //声明一个静态变量 是当前对象 并且也是被private修饰
- //private修饰目的是为了避免恶意置空
- private static Single01 instance = new Single01();
- //提供公开的访问方式
- public static Single01 getInstance() {
- return instance;
- }
-
- }
复制代码
饿汉式就是上来就new对象
懒汉式是能不new就不new
如果记不住的话
可以理解成 两个单身的人 一个很懒 找对象都懒得找
另一个人反而“饿”的不行了 离不开对象。。
下面是懒汉式的代码
- //懒汉式
- public class DemoSingleTest02 {
- public static void main(String[] args) {
- Single02 s1= Single02.getInstance();
- Single02 s2= Single02.getInstance();
- System.out.println(s1==s2);
- }
- }
- class Single02{
- private Single02(){
- }
- private static Single02 instance;
- public static Single02 getInstance() {
- if(instance==null){
- instance = new Single02();
- }
- return instance;
- }
-
- }
复制代码 |
|