参考:
https://www.cnblogs.com/dolphin0520/p/3736238.html (final关键字),继承是为了封装变化,final修饰不可变
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package NewCoder;
/**
*
* @author MI
*/
public class Test_singleton {
private Test_singleton() {}
private static Test_singleton single = new Test_singleton();
public static Test_singleton getSingleton() {
return single;
}
private static volatile Test_singleton singleton;//volatile 立即可见,没有也行
public static Test_singleton getSingleton2() {
if (singleton == null) {
synchronized (Test_singleton.class) { //avoid synchronized(null)
if (singleton == null) {
singleton = new Test_singleton();
}
}
}
return singleton;
}
}