单例模式:只创建一个实例。最为常见的就是饥饿模式和懒汉模式。一个直接实例化对象,一个在调用的时候实例化对象。但是在多线程中,简单的方法已经不足以满足需求。
1.内部类的方式:
public class InnerSingleton{
private static class Singleton{
private static Singleton singleton = new Singleton();
}
public static Singleton getInstance(){
return Singleton.singleton;
}
}
2.双从判断:
public class Singleton{
private Singleton singleton = null;
public static Singleton getInstance(){
if(singleton == null) {
synchronized(this) {
if(singleton == null) {
singleton = new Singleton();
}
}
}
return singleton;
}
}