单例模式–饿汉式
public class Single {
private static Single single = new Single();
// 将构造函数私有 防止被实例化
private Single() {
}
// 提供一个静态方法返回本类对象
public static Single getInstance() {
return single;
}
}
测试类
public class TestSingle {
public static void main(String[] args) {
Single single = Single.getInstance();
System.out.println(single);
}
}
单例模式–懒汉式
public class Singleton {
// 单例模式--懒汉式
private static Singleton singleton = null;// 延迟加载
private Singleton() {
}
// 添加同步锁
public synchronized static Singleton getInstance() {
if (singleton == null)
// 同步代码块,防止多线程访问导致线程不安全
synchronized (Singleton.class) {
if (singleton == null)
singleton = new Singleton();
}
return singleton;
}
}
测试类
public class TestSingleton {
public static void main(String[] args) {
Singleton singleton = Singleton.getInstance();
System.out.println(singleton);
}
}