1 /*
2 编程实现Singleton类的封装
3 */
4 public class Singleton {
5
6 // 2.声明本类类型的引用指向本类类型的对象,使用private static关键字共同修饰
7 //private static Singleton sin = new Singleton(); // 饿汉式
8 private static Singleton sin = null; // 懒汉式
9
10 // 1.私有化构造方法,使用private关键字修饰
11 private Singleton() {}
12
13 // 3.提供公有的get方法负责将对象返回出去,使用public static关键字共同修饰
14 public static Singleton getInstance() {
15 //return sin;
16 if(null == sin) {
17 sin = new Singleton();
18 }
19 return sin;
20 }
21 }
1 /*
2 编程实现Singleton类的测试
3 */
4 public class SingletonTest {
5
6 public static void main(String[] args) {
7
8 // 1.声明Singleton类型的引用指向该类型的对象
9 //Singleton s1 = new Singleton();
10 //Singleton s2 = new Singleton();
11 //System.out.println(s1 == s2); // 比较变量s1的数值是否与变量s2的数值相等 false
12 //Singleton.sin = null; 可以使得引用变量无效
13 Singleton s1 = Singleton.getInstance();
14 Singleton s2 = Singleton.getInstance();
15 System.out.println(s1 == s2); // true
16 }
17 }