单例模式的测试数据 (二)

2014-11-24 10:41:15 · 作者: · 浏览: 1
System.out.println((single5_1 == null) + " " + single5_1.hashCode());

}

}

public class TestMain {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("=====TestSingleTon1 wrong test=====");
TestSingleTon1 single1 = new TestSingleTon1();
System.out.println((single1 == null) + " " + single1.hashCode());
TestSingleTon1 single2 = new TestSingleTon1();
System.out.println((single2 == null) + " " + single2.hashCode());
TestSingleTon1 single3 = single2.getInstance();
System.out.println((single3 == null) + " " + single3.hashCode());

System.out.println("=====TestSingleTon1 right test=====");
TestSingleTon1 single1_1 = TestSingleTon1.getInstance();
System.out.println((single1_1 == null) + " " + single1_1.hashCode());
TestSingleTon1 single2_1 = TestSingleTon1.getInstance();
System.out.println((single2_1 == null) + " " + single2_1.hashCode());

System.out.println("=====TestSingleTon2 wrong test=====");
TestSingleTon2 single4 = new TestSingleTon2();
System.out.println((single4 == null) + " " + single4.hashCode());
TestSingleTon2 single5 = new TestSingleTon2();
System.out.println((single5 == null) + " " + single5.hashCode());
TestSingleTon2 single6 = TestSingleTon2.getInstance();
System.out.println((single6 == null) + " " + single6.hashCode());

System.out.println("=====TestSingleTon2 right test=====");
TestSingleTon2 single4_1 = TestSingleTon2.getInstance();
System.out.println((single4_1 == null) + " " + single4_1.hashCode());
TestSingleTon2 single5_1 = TestSingleTon2.getInstance();
System.out.println((single5_1 == null) + " " + single5_1.hashCode());

}

}

测试结果:


[java]
=====TestSingleTon1 wrong test=====
constructor methord...
false 1762502123
constructor methord...
false 1193334315
get instance methord...
constructor methord...
false 15735326
=====TestSingleTon1 right test=====
get instance methord...
false 15735326
get instance methord...
false 15735326
=====TestSingleTon2 wrong test=====
constructor methord...
constructor methord...
false 1063563420
constructor methord...
false 130672250
get instance methord...
false 141106670
=====TestSingleTon2 right test=====
get instance methord...
false 141106670
get instance methord...
false 141106670

=====TestSingleTon1 wrong test=====
constructor methord...
false 1762502123
constructor methord...
false 1193334315
get instance methord...
constructor methord...
false 15735326
=====TestSingleTon1 right test=====
get instance methord...
false 15735326
get instance methord...
false 15735326
=====TestSingleTon2 wrong test=====
constructor methord...
constructor methord...
false 1063563420
constructor methord...
false 130672250
get instance methord...
false 141106670
=====TestSingleTon2 right test=====
get instance methord...
false 141106670
get instance methord...
false 141106670

[plain]
结果分析:
1.直接使用new,会产生新对象。
2.通过ClassXXX.getInstance,只会找到存在的对象,不存在才会new。

结果分析:
1.直接使用new,会产生新对象。
2.通过ClassXXX.getInstance,只会找到存在的对象,不存在才会new。

关于第一种的测试情况:

[java]

1. private static TestSingleTon1 singleton1 = null;

1.1. public TestSingleTon1(){
//TODO
System.out.println("constructor methord...");

}

2.