单例模式设计

技术单例模式设计 单例模式设计1、饿汉式/*** 饿汉式:直接创建对象,不管你是否需要,都会创建这个对象;** 1、构造器私有化* 2、自动创建,并且用静态保存* 3、向外提供这个实例* 4、强调这是一

单例模式设计

1、饿汉式

/**

* 饿汉式:直接创建对象,不管你是否需要,都会创建这个对象;

*

* 1、构造器私有化

* 2、自动创建,并且用静态保存

* 3、向外提供这个实例

* 4、强调这是一个单利模式,可以用最后的修饰

*/

公共类单线1 {

私有single on1(){ 0

}

公共静态最终single on1 INSTANCE=new single on1();

}

2、枚举

/**

* 枚举类型:表示该类型的对象是有限的几个,

* 我们定义成一个,就成了单利模式

*/

公共枚举单例2

情况

}

3、适用于初始化比较复杂的实例

/**

* 适用于初始化比较复杂的实例;

*/

公共类单线3 {

公共静态最终单线实例3

私有单例3(){ 0

}

静态{

//此处初始化其他数据;

INSTANCE=new Singlet 3();

}

}

4、懒汉式

/**

* 懒汉式:延迟创建这个实例对象;

*

* 1、构造器私有化

* 2、用一个静态变量保存这个唯一的实例;

* 3、提供一个静态方法,获取这个实例;

*/

公共类单线4 {

私有静态单身4实例;

私有single 4(){ 0

}

公共静态singleton 4 getInstance(){ 0

如果(实例==null){ 0

//线程。睡眠(100);此处睡眠,若两个线程同时进入,会创建两个对象

instance=new singleton 4();

}

返回实例;

}

}

/**

* 懒汉式:延迟创建这个实例对象;

*

* 1、构造器私有化

* 2、用一个静态变量保存这个唯一的实例;

* 3、提供一个静态方法,获取这个实例;

*/

公共类单线5 {

私有静态单线5实例;

私有singleton 5(){ 0

}

公共静态singleton 5 getInstance(){ 0

同步(单线5 .类){ 0

如果(实例==null){ 0

尝试{

//此处睡眠,若两个线程同时进入,会创建两个对象

线。睡眠(1000);

} catch(中断异常){ e

e。print stack trace();

}

instance=new singleton 5();

}

}

返回实例;

}

}

5、内部类的方式

//在内部类加载的时候才会创建对象情况

//静态内部类不会自动随着外部类的加载和初始化而初始化,他是单独去加载和初始化的;

公共类单线图6 {

私有singleton 6(){ 0

}

私有静态类内部{//内部类

私有静态最终singleton 6 INSTANCE=new singleton 6();

}

公共静态singleton 6 getInstance(){ 0

回归内心实例.

}

}

6、双端检索机制(DCL)

公共类单线图2 {

公共静态易失性单线态二氧化硅实例=null

私有singletondemo 2(){ 0

系统。出去。println(' single ondemo 2 ');

}

//DCL(双端检索机制)

公共静态SingletonDemo2 getInstance(){//由于指令重排机制,不一定100%线程安全

如果(实例==null){ 0

已同步(singletondemo 2。类){ 0

如果(实例==null){ 0

instance=new single ondemo 2();

}

}

}

返回实例;

}

公共静态void main(String[]参数){ 0

for(int I=0;i 1000I){ 0

新线程(()-{ 0

getInstance();

},String.valueOf(i)).start();

}

}

}

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/154992.html

(0)

相关推荐

  • Linux nmap/隧道工具

    技术Linux nmap/隧道工具 Linux nmap/隧道工具一、Nmap简介:Nmap(Network Mapper)网络映射器是一款开源的网络探测和安全审核的工具,应用在端口扫描等场景上;1.

    礼包 2021年12月6日
  • 君越怎么样,君越的优点和缺点是什么

    技术君越怎么样,君越的优点和缺点是什么展开全部 1、车体宽大君越怎么样,大气,外形给人一种豪华上档次的感觉。 2、有全新四缸全铝发动机,据说油耗在6.2升/100公里/90公里等速,如果能真的达到这个标准,我感觉应该非

    生活 2021年10月25日
  • 如何分析Linux环境变量和进程地址空间

    技术如何分析Linux环境变量和进程地址空间如何分析Linux环境变量和进程地址空间,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Linux环境变量和进程地

    攻略 2021年12月11日
  • openwrt状态监控(openwrt实现远程管理)

    技术OpenWRT如何实现远程监听小编给大家分享一下OpenWRT如何实现远程监听,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、安装命令o

    攻略 2021年12月18日
  • HTML5如何使用video

    技术HTML5如何使用video小编给大家分享一下HTML5如何使用video,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!对video的支持

    攻略 2021年11月24日
  • HBase默认配置是什么

    技术HBase默认配置是什么小编给大家分享一下HBase默认配置是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!hbase.rootdir

    攻略 2021年12月9日