饿汉式:
public class TestSingleton {
public static void main(String[] args) {
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
System.out.println(s1==s2);
}
}
class Singleton{
private Singleton() {
}
private static Singleton instance = new Singleton();
public static Singleton getInstance() {
return instance;
}
}
懒汉式:
public class TestSingleton1 {
public static void main(String[] args) {
Singleton1 s1 = Singleton1.getInstance();
Singleton1 s2 = Singleton1.getInstance();
System.out.println(s1==s2);
}
}
class Singleton1{
//1.私有化构造器
private Singleton1(){
}
private static Singleton1 instance;
public static Singleton1 getInstance() {
if (instance == null){
instance = new Singleton1();
}
return instance;
}
}
get方法设置static的原因就是让类来进行调用
类 . 静态方法 获取类的唯一的一个实例