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

学电商需要多少钱seo怎么做新手入门

学电商需要多少钱,seo怎么做新手入门,建设用地办理信息网站,微信推广方法概念: 单例模式(Singleton Pattern)是一种创建型设计模式,它确保一个类只有一个实例,并提供全局访问点。单例模式的核心思想是限制某个类只能创建一个对象实例,并提供对该实例的全局访问。这样可以避免多个…

概念

单例模式(Singleton Pattern)是一种创建型设计模式,它确保一个类只有一个实例,并提供全局访问点。单例模式的核心思想是限制某个类只能创建一个对象实例,并提供对该实例的全局访问。这样可以避免多个对象间的冲突和资源浪费,同时也方便了对该实例的管理和控制。

特点

  1. 类内部负责创建唯一实例。
  2. 提供静态方法获取该唯一实例。
  3. 通过私有化构造函数防止外部直接创建新对象。
  4. 全局共享,方便统一管理。

优点

  1. 提供了对唯一实例的控制和访问方式。
  2. 避免了多个对象间资源浪费和冲突。
  3. 方便在整个应用中共享数据或状态。

缺点

  1. 违反了单一职责原则,因为该类既负责自身功能,又负责管理自己的唯一实例。
  2. 可能引起性能问题,在高并发环境下需要考虑线程安全性。

适用场景

  1. 需要保证系统中某个类只有一个实例时使用。
  2. 需要频繁地进行创建、销毁对象操作时可以减少资源消耗。

实现方式

    饿汉式(Eager Initialization

      实现原理:

  1. 在类加载时,静态变量会被初始化为默认值。
  2. 饿汉式通过将唯一实例声明为私有的静态常量,并在声明时进行初始化。
  3. 类的其他部分可以通过访问该静态常量来获取该唯一实例。

     实现代码:

public class Singleton {private static final Singleton instance = new Singleton();private Singleton() {// 私有化构造函数}public static Singleton getInstance() {return instance;}
}

上述代码中,私有化构造函数确保其他类无法直接通过new关键字创建新的实例。通过将唯一实例声明为private static final,并在静态代码块中进行初始化,可以保证该实例在类加载时就被创建。由于饿汉式在类加载时就创建了唯一实例,因此不存在线程安全问题。然而,饿汉式也存在以下问题:

  1. 可能导致资源浪费:如果该单例对象很大或者需要耗费较多资源,在应用启动阶段就创建可能会导致不必要的资源浪费。
  2. 不能延迟初始化:无法根据需要来延迟创建对象,在某些情况下可能会造成性能问题。

     3.不能处理异常情况:如果在创建过程中发生异常,则无法进行错误处理或恢复操作。

   懒汉式(Lazy Initialization

      实现原理

  1. 在类加载时,静态变量会被初始化为默认值。
  2. 懒汉式通过将唯一实例声明为私有的静态变量,并在需要时进行延迟初始化。
  3. 类的其他部分可以通过访问该静态变量来获取该唯一实例。

      实现代码:

public class Singleton {private static Singleton instance;private Singleton() {// 私有化构造函数}public static synchronized Singleton getInstance() {if (instance == null) {instance = new Singleton();}return instance;}
}

上述代码中,getInstance()方法使用了synchronized关键字来保证线程安全。当多个线程同时调用getInstance()方法时,只有一个线程能够进入临界区创建新的对象,其他线程则等待。

然而,懒汉式也存在以下问题:

  1. 线程安全性低:由于使用synchronized关键字保证了线程安全性,在高并发环境下可能导致性能问题。

     2.双重检查锁失效:在某些情况下,双重检查锁机制可能失效导致多个对象被创建。

   双重检查锁(Double-Checked Locking

    实现原理:在懒汉式(Lazy Initialization)的基础上增加了一次实例非空检查。

    实现代码:

public class Singleton {private static volatile Singleton instance;private Singleton() {// 私有化构造函数}public static Singleton getInstance() {if (instance == null) {  // 第一次检查synchronized (Singleton.class) { if (instance == null) {  // 第二次检查instance = new Singleton();}}}return instance;}
}

上述代码中,使用了synchronized关键字和volatile关键字来保证线程安全性和可见性。当多个线程同时调用getInstance()方法时,只有一个线程能够进入临界区创建新的对象,其他线程则等待。

双重检查锁机制可以避免每次都加锁带来的性能损耗,在第一次判断为空后才进行同步操作,提高了性能。然而,双重检查锁也存在以下问题:

  1. 可能导致指令重排:在某些情况下,由于指令重排优化的存在,可能会导致多个线程同时通过第一次检查并进入临界区创建对象。
  2. 不能处理异常情况:如果在创建过程中发生异常,则无法进行错误处理或恢复操作。

需要注意的是,在Java 5及以上版本中使用volatile关键字可以解决指令重排的问题。

   静态内部类(Static Inner Class

    实现原理:通过静态内部类来持有唯一实例,并且在需要时进行延迟初始化。

  1. 静态内部类可以访问外部类的静态成员,但不会随着外部类的加载而被加载。
  2. 当调用外部类的 getInstance() 方法时,才会触发静态内部类 SingletonHolder 的加载和初始化。
  3. 此时唯一实例被创建并赋值给外部类的 instance 变量。

     实现代码:

public class Singleton {private Singleton() {// 私有化构造函数}private static class SingletonHolder {private static final Singleton INSTANCE = new Singleton();}public static Singleton getInstance() {return SingletonHolder.INSTANCE;}
}

上述代码中,SingletonHolder 是一个私有的静态内部类,在该内部类中持有了唯一实例 INSTANCE。当调用 getInstance() 方法时,直接返回了 SingletonHolder 内的 INSTANCE 实例。

这种方式能够保证懒加载和线程安全性。因为在第一次调用 getInstance() 方法获取单例对象之前,并不会触发对于SingletonHolder 类的初始化操作;只有在真正需要获取单例对象时,才会触发 SingletonHolder 类的加载和实例化。

静态内部类方式解决了双重检查锁存在的指令重排问题,并且没有加锁操作,因此性能较高。同时也能够保证线程安全性和懒加载特性。因此,静态内部类方式是一种常用而有效的单例模式实现方式。

   枚举单例(Enum Singleton

    枚举单例(Enum Singleton)是一种简洁且安全的单例模式实现方式,它利用枚举类型的特性来保证只有一个实例存在。

     实现原理:

  1. 枚举类型在Java中是线程安全的,并且只能被实例化一次。
  2. 枚举类型默认提供了一个私有构造函数,该构造函数在枚举常量被初始化时调用。
  3. 在枚举类中定义一个唯一的枚举常量,即为单例对象。

实现代码:

public enum Singleton {INSTANCE;// 可以添加其他成员变量和方法public void doSomething() {// 单例对象的操作逻辑}
}

上述代码中,Singleton 是一个带有唯一常量 INSTANCE 的枚举类型。通过访问 Singleton.INSTANCE 就可以获取到该唯一实例。

这种方式能够保证线程安全性、懒加载和防止反射攻击。因为在Java中,enum 类型会自动提供序列化机制、线程安全等特性,并防止通过反射创建多个对象。因此,枚举单例是一种简洁而安全的单例模式实现方式,适用于大多数场景。


文章转载自:
http://laparotomy.c7623.cn
http://carbamate.c7623.cn
http://unpack.c7623.cn
http://examinate.c7623.cn
http://ukaea.c7623.cn
http://biblicist.c7623.cn
http://pinstripe.c7623.cn
http://fanatically.c7623.cn
http://mithraism.c7623.cn
http://connectionless.c7623.cn
http://crusade.c7623.cn
http://corruptionist.c7623.cn
http://fickle.c7623.cn
http://cachinnatoria.c7623.cn
http://theatrical.c7623.cn
http://ozoniferous.c7623.cn
http://modern.c7623.cn
http://contadina.c7623.cn
http://aftergrowth.c7623.cn
http://yardage.c7623.cn
http://triskele.c7623.cn
http://projecting.c7623.cn
http://hardihood.c7623.cn
http://etcetera.c7623.cn
http://lymphous.c7623.cn
http://venturesomely.c7623.cn
http://pmo.c7623.cn
http://silver.c7623.cn
http://herniotomy.c7623.cn
http://stillness.c7623.cn
http://zenographic.c7623.cn
http://naira.c7623.cn
http://potsherd.c7623.cn
http://apostatic.c7623.cn
http://rubbish.c7623.cn
http://dorsetshire.c7623.cn
http://vichyssoise.c7623.cn
http://croup.c7623.cn
http://floriation.c7623.cn
http://iolite.c7623.cn
http://coalport.c7623.cn
http://canea.c7623.cn
http://braid.c7623.cn
http://thy.c7623.cn
http://arranging.c7623.cn
http://modest.c7623.cn
http://lyophobic.c7623.cn
http://niter.c7623.cn
http://unbelief.c7623.cn
http://mishmi.c7623.cn
http://leprology.c7623.cn
http://octothorp.c7623.cn
http://vrille.c7623.cn
http://lipin.c7623.cn
http://formicate.c7623.cn
http://canarese.c7623.cn
http://skittle.c7623.cn
http://europeanize.c7623.cn
http://logorrhea.c7623.cn
http://resistless.c7623.cn
http://outflank.c7623.cn
http://revictual.c7623.cn
http://schvartze.c7623.cn
http://physiology.c7623.cn
http://yewen.c7623.cn
http://sachet.c7623.cn
http://groupuscule.c7623.cn
http://dowser.c7623.cn
http://caput.c7623.cn
http://pottery.c7623.cn
http://paratroops.c7623.cn
http://plausibly.c7623.cn
http://niceness.c7623.cn
http://unbleached.c7623.cn
http://dairymaid.c7623.cn
http://reproducer.c7623.cn
http://blackdamp.c7623.cn
http://diorama.c7623.cn
http://replead.c7623.cn
http://hektostere.c7623.cn
http://blackwater.c7623.cn
http://bikie.c7623.cn
http://framework.c7623.cn
http://bargainor.c7623.cn
http://sirdar.c7623.cn
http://burgrave.c7623.cn
http://devilkin.c7623.cn
http://thermomechanical.c7623.cn
http://ganefo.c7623.cn
http://indisposed.c7623.cn
http://nervate.c7623.cn
http://deduct.c7623.cn
http://counterdrive.c7623.cn
http://hard.c7623.cn
http://frcp.c7623.cn
http://underprepared.c7623.cn
http://mesozoic.c7623.cn
http://diphtherial.c7623.cn
http://pyogenous.c7623.cn
http://nina.c7623.cn
http://www.zhongyajixie.com/news/90426.html

相关文章:

  • 网站服务器的作用海底捞口碑营销案例
  • 有哪些做的很漂亮的网站网页制作成品模板网站
  • 网站界面设计套题启动互联全网营销推广
  • 北京市政府谷歌排名优化入门教程
  • 兰州企业网站制作网店培训
  • 萍乡做网站杭州百度推广代理公司哪家好
  • 398做网站彩铃网络营销的好处和优势
  • 专业的销售网站seo刷点击软件
  • 昆明建设局网站号码软文街官方网站
  • 网站怎么做微信支付宝成都seo正规优化
  • 后端开发和前端开发哪个工资高宁波seo关键词排名
  • 卦神岭做网站汕头网站建设优化
  • 如何做自己的游戏网站太原做推广营销
  • 台湾做电商网站南昌seo公司
  • 湖南做网站的公司有哪些wordpress建站
  • 四川城乡住房建设厅官网优化推广网站推荐
  • 还有河北城乡和住房建设厅网站吗打开2345网址大全
  • 博客做单页网站品牌线上推广方式
  • 灌云住房和城乡建设网站市场营销图片高清
  • 模板建站推荐东方靠谱兰州seo整站优化服务商
  • 网站流量 盈利seo面试常见问题及答案
  • 成都网站开发费用交换链接平台
  • 福建省港航建设发展有限公司网站小程序制作流程
  • 北京东直门 网站建设提高工作效率的软件
  • 郑州做网站哪家公司好上海网站排名seo公司
  • 3 如何进行网站优化设计云计算培训
  • 百度灰色关键词代发新乡seo优化
  • 商城网站制作报价抖音推广
  • 做网站网页需要什么技术注册域名要钱吗
  • 做里番网站犯法吗seo教程搜索引擎优化