singleton写一个Singleton出来

singleton  时间:2021-06-04  阅读:()

Singleton模式主要作用是什么?是写出一个完整的Singleton模式的程序,注意风格

单子模式,主要用于单线程。

有懒汉,和恶汉式区别。

public class Env() {

private Env env;

public Env getInstance(){

if(env==null){

env=new Env();

}

return env;

}

private Env(){

}

}

如何在java中实现singleton模式

单例模式大致有五种写法,分别为懒汉,恶汉,静态内部类,枚举和双重校验锁。

1、懒汉写法,常用写法 class?LazySingleton{ ????private?static?LazySingleton?singleton; ????private?LazySingleton(){ ????} ????public?static?LazySingleton?getInstance(){ ????????if(singleton==null){ ????????????singleton=new?LazySingleton(); ????????} ????????return?singleton; ????}??? }2、恶汉写法,缺点是没有达到lazy loading的效果 class?HungrySingleton{ ????private?static?HungrySingleton?singleton=new?HungrySingleton(); ????private?HungrySingleton(){} ????public?static?HungrySingleton?getInstance(){ ????????return?singleton; ????} }3、静态内部类,优点:加载时不会初始化静态变量INSTANCE,因为没有主动使用,达到Lazy loading class?InternalSingleton{ ????private?static?class?SingletonHolder{ ????????private?final?static??InternalSingleton?INSTANCE=new?InternalSingleton(); ????}??? ????private?InternalSingleton(){} ????public?static?InternalSingleton?getInstance(){ ????????return?SingletonHolder.INSTANCE; ????} }4、枚举,优点:不仅能避免多线程同步问题,而且还能防止反序列化重新创建新的对象 enum?EnumSingleton{ ????INSTANCE; ????public?void?doSomeThing(){ ????} }5、双重校验锁,在当前的内存模型中无效 class?LockSingleton{ ????private?volatile?static?LockSingleton?singleton; ????private?LockSingleton(){} ????public?static?LockSingleton?getInstance(){ ????????if(singleton==null){ ????????????synchronized(LockSingleton.class){ ????????????????if(singleton==null){ ????????????????????singleton=new?LockSingleton(); ????????????????} ????????????} ????????} ????????return?singleton; ????} }

两种单例模式有什么不同啊?

前一个单例的创建是在第一次调用方法时。

后一个单例的创建是实例化该类后就创建了。

但是笔者认为,后一个不是单例模式。

因为他可以同时创建多个对象。

而前一个虽说是,但不严谨,没考虑到同步问题。

在其得到实例方法中最好加上synchronized(同步)关键字…我手机回的。

具体的你可以百度下资料的。

写一个Singleton出来

1、饱汉模式 2、饥汉模式 3、用枚举 扩展资料 Singleton模式 Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。

一般Singleton模式通常有几种种形式:? 1、第一种形式: 2、第二种形式:? 参考资料:单例模式

Fiberia.io:$2.9/月KVM-4GB/50GB/2TB/荷兰机房

Fiberia.io是个新站,跟ViridWeb.com同一家公司的,主要提供基于KVM架构的VPS主机,数据中心在荷兰Dronten。商家的主机价格不算贵,比如4GB内存套餐每月2.9美元起,采用SSD硬盘,1Gbps网络端口,提供IPv4+IPv6,支持PayPal付款,有7天退款承诺,感兴趣的可以试一试,年付有优惠但建议月付为宜。下面列出几款主机配置信息。CPU:1core内存:4GB硬盘:...

RAKsmartCloud服务器,可自定义配置月$7.59

RAKsmart商家一直以来在独立服务器、站群服务器和G口和10G口大端口流量服务器上下功夫比较大,但是在VPS主机业务上仅仅是顺带,尤其是我们看到大部分主流商家都做云服务器,而RAKsmart商家终于开始做云服务器,这次试探性的新增美国硅谷机房一个方案。月付7.59美元起,支持自定义配置,KVM虚拟化,美国硅谷机房,VPC网络/经典网络,大陆优化/精品网线路,支持Linux或者Windows操作...

#消息# contabo:德国老牌机房新增美国“纽约、西雅图”数据中心,免设置费

运作了18年的德国老牌机房contabo在继去年4月开办了第一个美国数据中心(中部城市:圣路易斯)后立马在本月全新上马两个数据中心:纽约、西雅图。当前,为庆祝美国独立日,美国三个数据中心的VPS全部免除设置费,VPS本身的配置很高,价格适中,有较高的性价比!官方网站:https://contabo.com/en/SSD VPSKVM虚拟,纯SSD阵列,不限制流量,自带一个IPv4内存CPUSSD带...

singleton为你推荐
视频压缩算法1分钟视频的大小在10M左右的格式有哪些?y码衣服的尺码标识,3xL xL xxL都代表的什么意思?视频技术视频监控技术的定义及特点腾讯汽车网可以了解汽车知识的权威网站大概有哪些网络审计网经科技1820听说是网络审计路由器,大家知道怎么样吗?设备支持多少用户啊人肉搜索引擎人肉搜索引擎是干什么的?star413CONVERSE和ALLSTAR有什么区别模式识别算法机器学习和模式识别有什么区别?看教材,发现它们的算法都差不多一样啊。。。网络电话永久免费打有没有永久免费的网络电话印度尼西亚国家代码手机上的国家代码是什么
1g虚拟主机 国外免费vps smartvps 独享100m 80vps l5520 vmsnap3 牛人与腾讯客服对话 元旦促销 ftp教程 cdn联盟 qq云端 服务器合租 33456 彩虹云 独享主机 德隆中文网 lamp什么意思 lamp架构 阿里云邮箱登陆地址 更多