饿汉式
public class Test01 {
public static Test01 test01 = new Test01();
private Test01(){
System.out.println("饿汉式对象初始化");
}
public static Test01 getInstance(){
return test01;
}
public static void main(String[] args) {
Test01 instance = Test01.getInstance();
Test01 instance1 = Test01.getInstance();
System.out.println(instance==instance1);
}
}
懒汉式
```java
这里使用双重检验锁
public class Test {
public static Test test= null;
private Test(){
System.out.println("懒汉式对象初始化");
}
public static Test getInstance(){
if (test==null){
synchronized (Test.class){
if (test==null){
test= new Test();
}
}
}
return test;
}
public static void main(String[] args) {
Test instance1 = Test.getInstance();
Test instance2 = Test.getInstance();
System.out.println(instance1==instance2);
}
}