加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

设计模式课程 设计模式精讲 8-2 单例设计模式-懒汉式及多线程Deb

发布时间:2020-12-15 08:02:24 所属栏目:Java 来源:网络整理
导读:1 主要内容 1.1 核心功能点 2 代码演练 2.1 单线程调用 2.2 多线程调用 ? ? 1 主要内容 1.1 核心功能点 2 代码演练 2.1 单线程调用 测试类: ? package com.geely.design.pattern.creational.singleton; public class Test { public static void main(String

1    主要内容

1.1  核心功能点

2    代码演练

2.1  单线程调用

2.2  多线程调用

?

?

1    主要内容

1.1  核心功能点

2    代码演练

2.1  单线程调用

测试类:

?

package com.geely.design.pattern.creational.singleton;

public class Test {

    public static void main(String [] args){
        //这样写异常,因为构造方法私有
//        LazySingleton lazySingleton = new LazySingleton();
       LazySingleton lazySingleton = LazySingleton.getInstance();
       System.out.println(lazySingleton);
    }
}

?

?

?

实体类:

?

package com.geely.design.pattern.creational.singleton;

public class LazySingleton {
    /*
    属性私有,其他外部类,无法调用该属性,安全
     */
    private static LazySingleton lazySingleton = null;

    /**
     * 构造方法私有,其他类无法实例化该类
     */
    private LazySingleton(){
    }

    /**
     * 这里写静态方法:因为外部类无法实例化创建出该类,
     * 只能通过该类的静态方法获取到该类。
     * @return
     */
    public static LazySingleton getInstance(){
        if(lazySingleton == null){
            lazySingleton = new LazySingleton();
        }
        return lazySingleton;
    }
}

?

?

打印结果:

"C:Program FilesJavajdk1.7.0_79binjava.exe" "-javaagent:D:javadevolopKitideaanZhIntelliJ IDEA Community Edition 2018.1.4libidea_rt.jar=3988:D:javadevolopKitideaanZhIntelliJ IDEA Community Edition 2018.1.4bin" -Dfile.encoding=UTF-8 -classpath "C:Program FilesJavajdk1.7.0_79jrelibcharsets.jar;C:Program FilesJavajdk1.7.0_79jrelibdeploy.jar;C:Program FilesJavajdk1.7.0_79jrelibextaccess-bridge-64.jar;C:Program FilesJavajdk1.7.0_79jrelibextdnsns.jar;C:Program FilesJavajdk1.7.0_79jrelibextjaccess.jar;C:Program FilesJavajdk1.7.0_79jrelibextlocaledata.jar;C:Program FilesJavajdk1.7.0_79jrelibextsunec.jar;C:Program FilesJavajdk1.7.0_79jrelibextsunjce_provider.jar;C:Program FilesJavajdk1.7.0_79jrelibextsunmscapi.jar;C:Program FilesJavajdk1.7.0_79jrelibextzipfs.jar;C:Program FilesJavajdk1.7.0_79jrelibjavaws.jar;C:Program FilesJavajdk1.7.0_79jrelibjce.jar;C:Program FilesJavajdk1.7.0_79jrelibjfr.jar;C:Program FilesJavajdk1.7.0_79jrelibjfxrt.jar;C:Program FilesJavajdk1.7.0_79jrelibjsse.jar;C:Program FilesJavajdk1.7.0_79jrelibmanagement-agent.jar;C:Program FilesJavajdk1.7.0_79jrelibplugin.jar;C:Program FilesJavajdk1.7.0_79jrelibresources.jar;C:Program FilesJavajdk1.7.0_79jrelibrt.jar;F:xiangmu3XinIdeadesign_patterntargetclasses" com.geely.design.pattern.creational.singleton.Test
[email?protected]3f8b

Process finished with exit code 0

?

?

2.2  多线程调用

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读