Java实现剑指Offer面试题1-单例模式

来源:互联网 发布:淘宝代写毕业论文靠谱 编辑:程序博客网 时间:2024/04/28 09:34
package chap2.test2;//设计一个类,只能生成该类的一个实例public class SingletonTest {//使用同步锁的方式创建private SingletonTest() {}private static SingletonTest instence;public static SingletonTest getInstence() {if (instence == null) {synchronized (SingletonTest.class) {if (instence == null) {instence = new SingletonTest();}}}return instence;}public static void main(String[] args) {SingletonTest3 s2 = SingletonTest3.getInstence();SingletonTest3 s3 = SingletonTest3.getInstence();System.out.println(s2 == s3);}}//使用静态方法块//优于第一种方式:静态方法块只调用一次,不用那么多次比较class SingletonTest2 {private SingletonTest2() {}private static SingletonTest2 instence = null;static {instence = new SingletonTest2();}public static SingletonTest2 getInstence(){return instence;}}//利用私有静态嵌套类//优于第二种方法:只在获取的时候调用一次,不用就不调,第二种方法只要用类就生成class SingletonTest3{private SingletonTest3(){}public static SingletonTest3 getInstence(){return Nested.instence;}private static class Nested{public static  SingletonTest3 instence = new SingletonTest3();}}

0 0
原创粉丝点击