饿汉:上来就创建好对象,“饿死了“
class SingleTon
{
private SingleTon(){}
public static SingleTon single = new SingleTon();
public static SingleTon getInstance(){
return single;
}
}
public class DemoSingleTon {
public static void main(String []strings){
SingleTon instance = SingleTon.getInstance();
}
}
懒汉:需要再创建对象,“我懒得的很”
class SingleTon {
private SingleTon() {
}
public static SingleTon single = null;
public static synchronized SingleTon getInstance() {
if (single == null) {
single = new SingleTon();
}
return single;
}
}
public class DemoSingleTon {
public static void main(String[] strings) {
SingleTon instance = SingleTon.getInstance();
System.out.println(instance.toString());
}
}
double check for better performace
class SingleTon {
private SingleTon() {
}
public static SingleTon single = null;
public static SingleTon getInstance() {
if (single == null) {
synchronized (SingleTon.class) {
if (single == null) {
single = new SingleTon();
}
}
}
return single;
}
}
public class DemoSingleTon {
public static void main(String[] strings) {
SingleTon instance = SingleTon.getInstance();
System.out.println(instance.toString());
}
}