public class Single01 {
private final static Single01 single=new Single01();
private Single01(){
}
public static Single01 getSingle(){
return single;
}
}
public class Single02 {
private static Single02 single = null;
private Single02() {
}
public static synchronized Single02 getSingle() {
if (single == null) {
single = new Single02();
return single;
} else {
return single;
}
}
}
public class Single03 {
private static volatile Single03 single = null;
private Single03() {
}
public static Single03 getSingle() {
if (single == null) {
synchronized (Single03.class) {
if (single == null) {
single = new Single03();
}
}
}
return single;
}
}