Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。在很多操作中,比如建立目录、数据库连接都需要这样的单线程操作。
单例设计模式分为两种:饿汉式和懒汉式。
1、饿汉式示例代码:
public class Single{
private static final Single s = new Single();
private Single(){
}
public static Single getInstance(){
return s ;
}
}
2、懒汉式示例代码(懒汉式会延迟对象的实例化和加载,但也会出现线程安全问题,所以需要使用对象锁,锁所绑定的是类的字节码文件对象。同时,使用锁会使效率降低,应使用双层判断的方法减少判断锁的次数):
public class Single{
private static Single s = null;
private Single(){
}
public static Single getInstance(){
if(s==null){
synchronized(Single.class){
if(s==null){
s = new Single();
}
}
}
return s ;
}
}