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、第二种形式:? 参考资料:单例模式

欧路云:美国CUVIP线路10G防御,8折优惠,19元/月起

欧路云新上了美国洛杉矶cera机房的云服务器,具备弹性云特征(可自定义需要的资源配置:E5-2660 V3、内存、硬盘、流量、带宽),直连网络(联通CUVIP线路),KVM虚拟,自带一个IP,支持购买多个IP,10G的DDoS防御。付款方式:PayPal、支付宝、微信、数字货币(BTC USDT LTC ETH)测试IP:23.224.49.126云服务器 全场8折 优惠码:zhujiceping...

数脉科技8月促销,新客减400港币,BGP、CN2+BGP、阿里云线路低至350元

数脉科技(shuhost)8月促销:香港独立服务器,自营BGP、CN2+BGP、阿里云线路,新客立减400港币/月,老用户按照优惠码减免!香港服务器带宽可选10Mbps、30Mbps、50Mbps、100Mbps带宽,支持中文本Windows、Linux等系统。官方网站:https://www.shuhost.com* 更大带宽可在选购时选择同样享受优惠。* 目前仅提供HKBGP、阿里云产品,香港...

10GBIZ(月$2.36 ), 香港和洛杉矶CN2 GIA

10GBIZ服务商经常有看到隔壁的一些博客分享内容,我翻看网站看之前有记录过一篇,只不过由于服务商是2020年新成立的所以分享内容比较谨慎。这不至今已经有将近两年的服务商而且云服务产品也比较丰富,目前有看到10GBIZ服务商有提供香港、美国洛杉矶等多机房的云服务器、独立服务器和站群服务器。其中比较吸引到我们用户的是亚洲节点的包括香港、日本等七星级网络服务。具体我们看看相关的配置和线路产品。第一、香...

singleton为你推荐
orderbydescSQL里面的order by语句是干什么用的?iso20000认证什么是ISO20000-IT服务管理体系视频压缩算法关于视频压缩的原理?视频压缩算法1分钟视频的大小在10M左右的格式有哪些?virusscan为什么解压文件显示VirusScan 警报!不能解压!怎么回事怎么解决高手来qq博客怎样开通QQ博客?自定义表情qq自定义表情印度尼西亚国家代码谁知道世界各国的国家电话代码?jstz江苏泰州市地税如何申报?assemblyinfoCSE和CS有什么区别
虚拟主机软件 成都虚拟主机 动态ip的vps 免费域名解析 泛域名绑定 华为云服务 美国翻墙 diahosting wavecom 免费主机 英语简历模板word 秒杀汇 网络空间租赁 免费智能解析 绍兴电信 东莞服务器 如何建立邮箱 如何登陆阿里云邮箱 国内空间 大化网 更多