什么是单例模式

单例模式:

1.保证类在内存中只能有一个对象

单例模式分为:

1.懒汉式:类一加载就创建对象
2.饿汉式:用的时候,才去创建对象

相关经验:
饿汉式 (是不会出现问题的单例模式)
懒汉式 (可能会出现问题的单例模式)
(1.)懒加载(延迟加载)
(2.)线程安全问题
1.)是否多线程环境 是
2.)是否有共享数据 是
3.)是否有多条语句操作共享数据 是

举例:

1.饿汉模式:


     public class Student{
            //私有构造方法
            private Student(){
            }
            //在本类中进行实例,只能实例一次,并且是私有的
            private static final Student STUDENT = new Student();
            //提供公共的方法,供外界去访问
            public static Student getStudent(){
                return STUDENT;
            }
         }

2.懒汉模式

 public class Student{ 
                private Student(){}
                //这是声明这个对象,什么时候使用它的时候什么时候去创建
                private static Student student = null;
           //线程同步锁,确保内存中只能有一个对象
                public synchronized static Student getStudent(){
                    if (student == null) {
                       student = new Student();
                    }
              return student;
                }
           }

你可能感兴趣的:(什么是单例模式)