java中的单例模式注意事项:
/**
* @ClassName: SinglePatternTest.java
* @Description:
* @author jatham
* @date 2019年3月2日 下午12:58:05
*/
public class SinglePatternTest {
// 注意这两行的顺序:创建实例的时候,程序会先实例化静态变量,如果类的静态变量example放在第一行,先于testMap初始化,就会造成在构造example实例的时候,构造方法内的
// testMap.put调用失败(此刻testMap尚未实例化,为null)
private static Map<String, String> testMap = new HashMap<>();
private static SinglePatternTest example = new SinglePatternTest();
private SinglePatternTest() {// 构造方法中调用test的put方法,要确保test不为空
testMap.put("1", "test");
}
public static SinglePatternTest getInstance() {
return example;
}
}