zoukankan      html  css  js  c++  java
  • 创建单例实体类

    package xiancheng;
    /**
    * 单例创建的方式
    * 1.懒汉式
    * 2.饿汉式
    * 3.利用内部类的方式
    * @author User
    *
    */

    public class lianxi18 {}
    /**
    * 加入内部类的形式 类在使用的形式才加载 延缓加载时间
    * @author User
    *
    */
    class demo03 {
    private static class jvmholder{
    public static demo03 instance=new demo03();
    }
    private demo03(){}
    public static demo03 getInstance(){
    return jvmholder.instance;
    }

    }
    /**
    *饿汉式
    *1.构造器私有化
    *2.声明私有的静态属性,同时创建该对象
    *3. 对外提供访问属性的静态方法
    */

    class demo02 {
    public static demo02 instance=new demo02();
    private demo02(){}
    public static demo02 getInstance(){
    return instance;
    }

    }
    /**
    * 懒汉式
    *1.构造器私有化
    *2.声明私有的静态属性,同时创建该对象
    *3.对外提供访问属性的静态方法,确保该对象存在
    * @author User
    *
    */

    class demo01 {
    public static demo01 instance;
    private demo01(){}
    public static demo01 getInstance(){
    if (null==instance) {
    synchronized (demo01.class) {
    if (null==instance) {
    instance=new demo01();
    }
    }
    }
    return instance;
    }

    }

    未解决多线程并发的问题,需要实现一个类只对应一个对象,通过以上的几种方式可以实现创建单例..

  • 相关阅读:
    Celery
    高并发架构
    websocket
    git分支管理
    auto_ptr与shared_ptr
    UDP信号驱动IO
    TCP带外数据
    UDP广播
    获取mac地址
    char数组初始化
  • 原文地址:https://www.cnblogs.com/zx931880423/p/6868888.html
Copyright © 2011-2022 走看看