当前位置: 首页 > news >正文

做名片的网站什么是互联网推广

做名片的网站,什么是互联网推广,手机网站被禁止访问怎么设置打开,用jsp做网站有什么好处一、单例模式 单例模式(Singleton Pattern)是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一实例。 单例模式中: 这个类只能有一个实例这个类必须自己创建自己的唯一实例这个类必须…

一、单例模式

  单例模式(Singleton Pattern)是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一实例。

  单例模式中:

  • 这个类只能有一个实例
  • 这个类必须自己创建自己的唯一实例
  • 这个类必须向外提供访问其唯一实例的方式

二、Java中单例模式的实现方式

  Java中常见的单例模式实现方式有五种:

1.饿汉式(Eager Initialization)

  饿汉式在类加载时就创建单例对象,所以在调用时不需要再创建对象,直接使用即可。这种实现方式比较简单,但在某些情况下可能会造成资源的浪费。

public class SingletonEager {private static final SingletonEager INSTANCE = new SingletonEager();private SingletonEager() {}public static SingletonEager getInstance() {return INSTANCE;}
}
2.懒汉式(Lazy Initialization)

  懒汉式在调用时才创建单例对象,这种实现方式避免了资源浪费,但会有线程安全问题。

public class SingletonLazyUnsafe {private static SingletonLazyUnsafe instance;private SingletonLazyUnsafe() {}public static SingletonLazyUnsafe getInstance() {if (instance == null) {instance = new SingletonLazyUnsafe();}return instance;}
}// 注意:懒汉式在多线程环境下是不安全的

  

3.双重检查锁定(Double-Check Locking)

  双重检查锁定是在懒汉式的基础上加入了双重检查锁机制,可以保证线程安全。

public class SingletonDoubleCheck {private volatile static SingletonDoubleCheck instance;private SingletonDoubleCheck() {}//双重检查和加锁来保证线程安全public static SingletonDoubleCheck getInstance() {if (instance == null) {synchronized (SingletonDoubleCheck.class) {if (instance == null) {instance = new SingletonDoubleCheck();}}}return instance;}
}
4.静态内部类(Static Inner Class)

  静态内部类这个方式是将单例对象作为静态内部类的一个静态变量,这种实现方式既可以保证线程安全,又可以实现懒加载。其实现原理是:外部类加载时,并不会立刻加载内部类,内部类不被加载,就不会去创建实例,只有当getInstance方法被调用时,才会加载内部类去创建实例(而且类加载的过程,在JVM中是被设计成线程安全的),所以既保证线程安全又实现了懒加载。

public class SingletonStaticInner {private SingletonStaticInner() {}private static class SingletonHolder {private static final SingletonStaticInner INSTANCE = new SingletonStaticInner();}public static SingletonStaticInner getInstance() {return SingletonHolder.INSTANCE;}
}

5.枚举(Enumeration)

  枚举是实现单例模式的最佳方式,将单例对象定义为一个枚举类型,这种实现方式可以保证线程安全,同时也可以防止反射、反序列化破坏单例模式。

public enum SingletonEnum {INSTANCE;// 定义方法或属性public void someMethod() {// ...}
}// 使用
SingletonEnum.INSTANCE.someMethod();

注意:除了枚举方式,前面四种方式实现的单例模式都存在反射和反序列化破坏单例的问题

  (在不做额外处理的情况下,通过反射可以突破构造方法的私有化限制,强行创建新的实例。而在反序列化时,可能会生成新的对象实例,而不是保持原有的单例状态。)


http://www.dinnco.com/news/35490.html

相关文章:

  • ui设计流程培训怎么样潍坊百度关键词优化
  • 崇左做网站公司广州新闻播报
  • 国外做电商平台的网站有什么搜索引擎优化核心
  • 云阳网站建设seo挖关键词
  • wordpress实例站长尾关键词挖掘站长工具
  • 北京网站建设第一品牌我赢网seo优化网站
  • 网站主机安全湖州网站建设制作
  • 怎么可以上传自己做的网站永久8x的最新域名
  • 我的网站突然打不开了国内网络推广渠道
  • 如何绑定网站域名百度搜索关键词排名优化
  • wordpress 自己写云南优化公司
  • 了解网站建设管理百度登录个人中心官网
  • 盐城网站建设招聘哔哩哔哩推广网站
  • 产品开发管理系统seo求职
  • 电商网站 建设北京搜索引擎优化
  • 日本配色的网站推荐中国营销网
  • 网站首页banner动态化seo整站优化技术培训
  • 制作网站规划书百度人工优化
  • dreamweaver是系统软件吗seo搜索优化公司
  • 秦皇岛网站搜索排名网络销售平台排名
  • 网站数据库是什么手游推广渠道和推广方式
  • 做网站的厉害还是黑网站的厉害百度影音在线电影
  • wordpress 微站今日国内新闻大事20条
  • 做设计一般用的素材网站是什么意思设计个人网站
  • 手机wap网站 源码seo网站优化知识
  • 长沙专业网站制作新闻热点大事件
  • 政府类wap网站建设方案国内优秀个人网站欣赏
  • 网站建设的电话回访长春网站开发公司
  • 毕业答辩问题怎么做的这个网站厦门网络推广
  • 网站建设大全网络营销与直播电商怎么样