特点
构造器私有化
- DCL懒汉式
双重加锁
public class Test{
private volatile static Test t;
public static Test getInstance(){
synchronized (Test.class){
if(t==null){
t = new Test();
}
}
return t;
}
private Test(){
}
}
使用new对象时,会进行以下操作,但2 3操作执行顺序不确定
- 分配内存空间
- 执行构造方法初始化对象
- 将这个对象指向内存空间
不要忘记java中有个反射!!!