单例模式实现
1.私有的构造方法
2.私有的静态的当前类对象作为属性
3.共有的静态的方法返回当前类对象
单例模式实现方式有三种(指的时对象的加载)
1.饿汉式(立即加载)对象启动时就加载了
不会产生对象没有就拿来使用的问题 即空指针异常
启动项目加载的对象过多,有些还没使用到,产生服务器承载压力的问题
2.懒汉式(延迟加载)对象什么时候用到了,才会加载
可能会由于没有操作好,导致异常(需要很严谨的控制)
启动项目时只有需要的时候才加载对象,不需要的时候还没有创建,不会浪费空间
*3.生命周期托管(单例对象别人帮我们处理)对象加载过程交给别人
1.饿汉式单例模式
1 //饿汉式单例模式 2 public class Singleton { 3 //外面不能创建Singleton对象,从源头控制Singleton对象的个数 4 private Singleton(){} 5 6 //类属性singleton保存一个 7 private static Singleton singleton = new Singleton(); 8 9 public static Singleton getSingle(){ 10 return singleton; 11 } 12 }
Main函数写法
1 public class Main { 2 public static void main(String[] args){ 3 Singleton singleton1 = Singleton.getSingle(); 4 Singleton singleton2 = Singleton.getSingle(); 5 System.out.println(singleton1 == singleton2); 6 } 7 }
执行结果:
2.懒汉式单例模式
1 //懒汉式单例模式 2 public class Singleton { 3 //外面不能创建Singleton对象,从源头控制Singleton对象的个数 4 private Singleton(){} 5 6 //类属性singleton保存一个 7 private static Singleton singleton; 8 9 public static Singleton getSingle(){ 10 if(singleton == null){ 11 singleton = new Singleton(); 12 } 13 return singleton; 14 } 15 }
1 public class Main { 2 public static void main(String[] args){ 3 Singleton singleton1 = Singleton.getSingle(); 4 Singleton singleton2 = Singleton.getSingle(); 5 System.out.println(singleton1 == singleton2); 6 } 7 }
执行结果:
第三种实现方式还没学到,等学到了在再更新
标签:Singleton,JAVA,对象,singleton,单例,public,加载 From: https://www.cnblogs.com/lanshanxiao/p/16841698.html