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

做义工旅行有哪些网站seo搜索引擎优化是做什么的

做义工旅行有哪些网站,seo搜索引擎优化是做什么的,网站设计的指导思想,上海软件定制开发1.概念 1.1 什么是单例模式 单例模式属于创建型模式,一个单例类在任何情况下都只存在一个实例, 构造方法必须是私有的、由自己创建一个静态变量存储实例,对外提供一 个静态公有方法获取实例。 1.2 优点与缺点 优点:是内存中只有一个实例&…

1.概念

1.1 什么是单例模式

单例模式属于创建型模式,一个单例类在任何情况下都只存在一个实例
构造方法必须是私有的、由自己创建一个静态变量存储实例,对外提供一
个静态公有方法获取实例。

1.2 优点与缺点

优点:是内存中只有一个实例,减少了开销,尤其是频繁创建和销毁实例的情况下,可以避免对资源的多重占用。
缺点:没有抽象层,难以扩展,与单一职责原则冲突(单例模式由于其全局访问的特性,往往会使得类的使用变得非常广泛,这会导致类的职责膨胀,变得越来越难以维护。)。

2.实现方式

2.1 懒汉式

懒加载 (lazy loading):使用的时候再创建对象。

2.1.1 懒汉式(线程不安全)

在第一次调用获取实例的方法时才创建实例。由于没有同步措施,因此线程不安全。

public class Singleton {private static Singleton instance;private Singleton() {}public static Singleton getInstance() {if (instance == null) {instance = new Singleton();}return instance;}
}

2.1.2 懒汉式(线程安全)

在懒汉式的基础上,通过同步代码块或方法来确保线程安全,但会降低性能。

public class Singleton {private static Singleton instance;private Singleton() {}public static synchronized Singleton getInstance() {if (instance == null) {instance = new Singleton();}return instance;}
}

2.2 饿汉式

类加载时就创建好实例,避免了线程同步问题,但可能会导致资源浪费。

public class Singleton {private static Singleton instance = new Singleton();private Singleton() {}public static Singleton getInstance() {return instance;}
}

2.3 双重检查锁定(Double-Checked Locking)

结合懒汉式和线程安全的特点,在获取实例时进行双重检查,以提高性能。

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;}
}

volatile关键字的作用是确保instance变量的可见性和防止指令重排序。

2.4 静态内部类

利用Java的类加载机制来实现懒加载和线程安全。

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

在这个示例中,SingletonHolder是一个静态内部类,它包含了一个静态的Singleton实例。SingletonHolder类只有在getInstance()方法被调用时才会被加载,这保证了Singleton实例的延迟加载。同时,由于类的加载过程是线程安全的,所以这种方式也保证了单例的线程安全。

2.5 枚举

使用枚举来实现单例模式,这是最简单的实现方式,并且天生线程安全,防止多次实例化。

public enum Singleton {INSTANCE1,INSTANCE2;public void someMethod() {// 功能处理System.out.println("执行一些功能处理");}
}
public class Main {public static void main(String[] args) {// 调用第一个枚举实例的方法Singleton.INSTANCE1.someMethod();// 调用第二个枚举实例的方法Singleton.INSTANCE2.someMethod();}
}

枚举天生线程安全的原因在于Java枚举的设计和实现:
枚举实例的创建时机:枚举的实例是在类加载时创建的,这个过程是由Java虚拟机(JVM)在加载枚举类时自动完成的。JVM确保在任何线程可以访问枚举的实例之前,这些实例已经被创建并初始化完毕
Java内存模型(JMM):Java内存模型确保了所有线程可以看到枚举实例的创建和初始化状态。这意味着在任何线程可以访问枚举的实例之前,这些实例的状态对于所有线程都是可见的
同步机制:在枚举实例的创建过程中,JVM内部会使用同步机制来确保实例的创建是原子性的,也就是说,在创建枚举实例的过程中,不会有其他线程干扰。
不可变性:枚举实例一旦被创建,就不能被修改或重新赋值。这意味着多个线程可以安全地访问枚举实例,而不会出现竞态条件或数据不一致的问题。
由于这些原因,枚举天生就是线程安全的,不需要开发者手动处理同步问题。

http://www.hkea.cn/news/4151/

相关文章:

  • 网站导航固定代码广州网站优化关键词排名
  • 扬州 网站建设朋友圈推广广告
  • 国际新闻网站中文版他达拉非片和伟哥区别
  • wordpress 升级php版本搜索引擎优化的特点
  • 建设一个小网站需要多少钱qq引流推广软件免费
  • 网站推广策划方式电商代运营十大公司排名
  • 网站开发使用哪种语言竹子建站官网
  • 网站建设收费标准报价简述网络营销的概念
  • 网站空间 购买专业的seo搜索引擎优化培训
  • Python视频直播网站开发网页设计软件
  • 南宁cms建站美国最新消息今天 新闻
  • 做网络推广要做网站吗seo网站诊断
  • 电子产品网站模板百度一下官方网
  • 怎么区分营销型网站电商关键词查询工具
  • 做资讯类网站如何创建自己的个人网站
  • 沧州网站设计哪家好什么平台可以免费打广告
  • 网站打不开dns修改品牌营销策划公司
  • wordpress不支持pdo泉州关键词优化报价
  • 哪个网站做攻略比较好小璇seo优化网站
  • 南宁网站建设公司排名营销网站建设选择
  • 网站找百度做可以嘛宁波专业seo外包
  • 武汉光谷网站建设中国第一营销网
  • html网站建设实例代码竞价
  • 百度开发平台seo入门视频
  • 网站开发语言java和php推广赚钱app哪个靠谱
  • 做电影网站怎么拿到版权seo研究所
  • 2021年国内国际时事app排名优化公司
  • 做信息图的网站有哪些sem竞价托管费用
  • 做视频网站投入多少广安网站seo
  • 广州招聘网站制作优化大师的功能有哪些