-
static模式
class Singleton{
private static Singleton s;
private Singleton(){
}
static{
s=new Singleton();
}
public static Singleton getResult(){
return s;
}
}
public class test{
public static void main(String[]args){
Singleton s1=Singleton.getResult();
Singleton s2=Singleton.getResult();
System.out.println(s1==s2);
}
}
-
饥汉模式
class Singleton{
private Singleton(){
}
private static final Singleton s=new Singleton();
public static Singleton getResult(){
return s;
}
}
public class test{
public static void main(String[]args){
Singleton s1=Singleton.getResult();
Singleton s2=Singleton.getResult();
System.out.println(s1==s2);
}
}
-
懒汉模式
class Singleton{
private Singleton(){
}
private static Singleton s;
public static Singleton getResult(){
if(s==null){
s=new Singleton();
}
return s;
}
}
public class test{
public static void main(String[]args){
Singleton s1=Singleton.getResult();
Singleton s2=Singleton.getResult();
System.out.println(s1==s2);
}
}