饿汉式:先初始化方式,类一进内存就已经创建好了对象。
class SingleMode1
{
private static SingleMode1 s=new SingleMode1();
private SingleMode1(){}
public static SingleMode1 getInstance()
{
return s;
}
}
懒汉式:后初始化方式,对象在方法调用时才初始化,也叫做类的延时加载。
class SingleMode2
{
private static SingleMode2 s=null;
private SingleMode2(){}
//public static synchronized SingleMode2 getInstance()//加锁,,一次只有一个程序在执行;但是程序效率变低了
public static SingleMode2 getInstance()
{
//用多线程解决冲突问题;在讲多线程的时候重点再讲;
if(s==null)
{
synchronized (SingleMode2.class)
{
if(s==null)
s=new SingleMode2();//方法调用时才建立对象
}
}
return s;
}
} |