说明:此单例模式在这个类加载到内存中时,这个类就会实例化,所以这种单例模式是线程安全的。
使用场景:一般用于在项目中只需要一个实例,例如数据库连接池,mq的工厂容器。
package com.example.java8.model.singleton;
public class Factory {
private static Factory ourInstance = new Factory();
public static Factory getInstance() {
return ourInstance;
}
private Factory() {
}
}
测试
package com.example.java8.model.singleton;
import org.junit.Test;
public class SingletonTest {
@Test
public void test(){
Factory instance1 = Factory.getInstance();
Factory instance2 = Factory.getInstance();
Factory instance3 = Factory.getInstance();
// 引用的地址都是一样的
System.out.println(instance1);
System.out.println(instance2);
System.out.println(instance3);
System.out.println(instance1 == instance3); // true
}
}