单例模式也就是只能创建一个对象,不能在多创建一个。其中分为饿汉式和懒汉式
饿汉式就是,在使用之前就去创建对象
//饿汉式 单例模式
public class dlTest {
private dlTest(){}
private final static dlTest dltest=new dlTest();
public static dlTest getDltest(){
return dltest;
}
}
使用静态代码块,基本同上只有稍微的改变
//饿汉式 单例模式
public class dlTest {
private dlTest(){}
private final static dlTest dltest;
static{
dltest=new dlTest();
}
public static dlTest getDltest(){
return dltest;
}
}
懒汉式就是使用这个类的时候在去创建这个类,容易引发多线程的问题
//懒汉式 单例模式
public class dlTest {
private dlTest(){}
private static dlTest dltest;
public static dlTest getDltest(){
if(dltest==null) {
dltest = new dlTest();
}
return dltest;
}
}
改进以后使用synchronized从而实现线程安全
//懒汉式 单例模式
public class dlTest {
private dlTest(){}
private static dlTest dltest;
public static synchronized dlTest getDltest(){
if(dltest==null) {
dltest = new dlTest();
}
return dltest;
}
}