Java单例设计模式,有多种实现方式,下面介绍一下比较著名的一些实现方式
-
饿汉式
这种设计模式简单,且没有多线程安全问题,一般实际开发时选用这种方式。
class HungeryDemo { private HungeryDemo(){} private static final HungeryDemo instance = new HungeryDemo(); public static HungeryDemo getInstance() { return instance; } }
2.懒汉式
这种模式,会延迟加载,效率较高。
这种设计模式较为复杂,存在多线程安全问题。可以用同步函数或同步代码块,为了避免每次都要
判断锁,采用同步代码块加双重判断的方式来解决线程安全问题。注意锁应该是该类的字节码文件
class LazyDemo { private LazyDemo(){} private static LazyDemo instance = null; public static LazyDemo getInstance() { if(instance==null) { synchronized(LazyDemo.class) { if(instance==null) { instance = new LazyDemo(); } } } return instance; } }
本文转自屠夫章哥 51CTO博客,原文链接:http://blog.51cto.com/4259297/1657214,如需转载请自行联系原作者