public class Single1 {
private Single1(){
}//私有化构造器
private final static Single1 single1 =new Single1();//创建一个私有的静态无法被修改的成员变量
public static Single1 getSingle1(){
return single1;
}//提供一个类方法获取对象实例
public static void main(String[] args) {
Single1 s1=Single1.getSingle1();
Single1 s2=Single1.getSingle1();
System.err.println(s1==s2);//true
}
}
2.懒汉式
public class Single {
private Single(){
}
private volatile static Single single;
public synchronized static Single getSingle(){
synchronized(Single.class){
if(single==null){
single=new Single();
}
}
return single;
}
public static void main(String[] args) {
Single s1=Single.getSingle();
Single s2=Single.getSingle();
System.out.println(s1==s2);
}
}