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

网站流量提供商wordpress 添加熊掌号

网站流量提供商,wordpress 添加熊掌号,郴州网站建设公司有哪些,jsp网站设计类的单例设计模式#xff0c;就是采取一定的方法保证在整个的软件系统中#xff0c;对某个类只能存在一个对象实例#xff0c;并且该类只提供一个取得其对象实例的方法#xff08;静态方法#xff09; 指一个类只有一个实例#xff0c;且该类能自行创建这个实例的一种模…类的单例设计模式就是采取一定的方法保证在整个的软件系统中对某个类只能存在一个对象实例并且该类只提供一个取得其对象实例的方法静态方法 指一个类只有一个实例且该类能自行创建这个实例的一种模式。 特点 某个类只能有一个实例即构造器私有防止外部通过new XXX()创建对象 自行在类的内部创建对象实例 向外暴露一个静态的公共方法 八种单例模式实现方式 饿汉式静态常量 饿汉式静态代码块 懒汉式线程不安全 懒汉式线程安全同步方法 懒汉式线程安全同步代码块 双重检查 静态内部类 枚举 饿汉式静态常量 public class Singleton {//创建实例对象private final static Singleton instance new Singleton();/*** 构造器私有化防止外部类能直接new*/private Singleton() {}/*** 提供一个公有的静态方法返回实例对象* return*/public static Singleton getInstance() {return instance;} }类装载的时候就完成实例化避免了线程同步问题如果从始至终都没有用到这个实例则会造成内存的浪费 饿汉式静态代码块 public class Singleton {//实例对象private static Singleton instance;/*** 在静态代码块中创建单例对象*/static {instance new Singleton();}/*** 构造器私有化防止外部类能直接new*/private Singleton() {}/*** 提供一个公有的静态方法返回实例对象* return*/public static Singleton getInstance() {return instance;} } 同上 懒汉式线程不安全 当需要使用到对象的时候才会创建对象即懒汉式 public class Singleton {//实例对象private static Singleton instance;/*** 构造器私有化防止外部类能直接new*/private Singleton() {}/*** 提供一个公有的静态方法当使用到该方法时才会创建instance* return*/public static Singleton getInstance() {//若对象为空则创建if (instance null) {instance new Singleton();}return instance;} } 起到了懒加载的效果但是只能在单线程下使用在实际开发中不要使用这种方式 懒汉式线程安全同步方法 public class YamlUtils {private static YamlUtils instance; // 类实例变量private YamlUtils() {loadConfig(); // 加载配置信息}/*** 提供一个公有的静态方法加入同步处理解决线程安全问题* return*/public static synchronized YamlUtils getInstance() {if (instance null) { // 若实例为空则创建新实例instance new YamlUtils();}return instance;}private void loadConfig() {}} 效率低每个线程在想获得类的实例时候执行 getInstance()方法都要进行同步而其实这个方法只执行一次实例化代码就够了后面的想获得该类的实例直接 return 就行方法进行同步效率太低 在实际开发中不推荐使用 懒汉式线程安全同步代码块 class Singleton {//实例对象private static Singleton instance;/*** 构造器私有化防止外部类能直接new*/private Singleton() {}/*** 提供一个公有的静态方法* return*/public static Singleton getInstance() {//若对象为空则创建if (instance null) {//同步代码块synchronized (Singleton.class) {instance new Singleton();}}return instance;} } 因为上面实现方式的同步方法效率太低改为同步产生实例化的代码块 同步并不能起到线程同步的作用假如一个线程进入了判断语句还没有执行对象实例化另一个线程也通过了这个判断语句这是便会产生多个实例 实际开发中不能使用这种方式 双重检查 public class Singleton {//实例对象private static volatile Singleton instance;/*** 构造器私有化防止外部类能直接new*/private Singleton() {}/*** 提供一个公有的静态方法加入双重检查处理解决线程安全问题* 同时解决懒加载问题也保证了效率* return*/public static Singleton getInstance() {//实例没创建才会进入内部的 synchronized代码块if (instance null) {synchronized (Singleton.class) {//此处再判断一次可能会出现其他线程创建了实例if (instance null) {instance new Singleton();}}}return instance;} } 1、DoubleCheck 概念是多线程开发中常使用到的如代码中所示进行了两次 if (instance null)检查这样就保证了线程安全。 2、实例化代码只用执行一次后面再次访问时判断 if (instance null)直接 return 实例化对象也避免反复进行方法同步。 3、线程安全延迟加载效率较高。 4、推荐使用这种单例设计模式。 静态内部类 public class Singleton {private Singleton() {}/*** 静态内部类类中有一个静态属性*/private static class SingletonInstance {private static final Singleton INSTANCE new Singleton();}public static final Singleton getInstance() {return SingletonInstance.INSTANCE ;} } 1、这种方式采用了类装载的机制来保证初始化实例时只有一个线程。 2、静态内部类方式在 Singleton 类被装载时并不会立即实例化而是在需要实例化时调用 getInstance 方法时才会装载 SingletonInstance 类从而完成 Singleton 的实例化。 3、类的静态属性只会在第一次加载类的时候初始化所以在这里JVM 帮助我们保证了线程的安全性在类进行初始化时别的线程是无法进入的。 4、避免了线程不安全利用静态内部类特点实现延迟加载效率高推荐使用。 枚举实现单例模式 public enum Singleton{INSTANCE;public Singleton getInstance(){return INSTANCE;} }public class SingletonTest01 {public static void main(String[] args) {Singleton instance1 Singleton.INSTANCE.getInstance();Singleton instance2 Singleton.INSTANCE.getInstance();System.out.println(instance1 instance2);System.out.println(instance1 instance1.hashCode());System.out.println(instance2 instance2.hashCode());} } 1、借助 JDK1.5 中添加的枚举来实现单例模式。不仅能避免多线程同步问题而且还能防止反序列化重新创建新的对象 推荐使用 总结 1、单例模式保证了系统内存中该类只存在一个对象节省了系统资源对于一些需要频繁创建销毁的对象使用单例模式可以提高系统性能。 2、当想实例化一个单例类的时候必须要记住使用相应的获取对象的方法而不是使用 new。 3、单例模式使用的场景 需要频繁的进行创建和销毁的对象、创建对象时耗时过多或耗费资源过多即重量级对象但又经常用到的对象、工具类对象、频繁访问数据库或文件的对象如数据源、session 工厂等
http://www.pierceye.com/news/428151/

相关文章:

  • 门业网站 源码做企业网站必须要座机吗
  • 广东网站开发推荐wordpress快速加载
  • php网站开发外包北京网站建设迈程网络
  • 微信开发者平台取消授权seo资源网站排名
  • 将网站源码下载下来如何使用网站seo链接购买
  • 可信网站认证必须做苏州那里可以建网站
  • 手机网站底部代码有名的网站建设
  • 做一个网站需要多长时间网站制作有哪些种类
  • 做微信推送的网站小刘网站建设
  • 18款禁用软件app网站入口台州网站推广排名
  • 网站的服务内容济南网站制作方案
  • 微网站模板 phpwordpress 支付宝
  • wordpress dux主题破解安装全屏网站 图片优化
  • 一键建站公司做网站 怎么做留言
  • 制作的网站西安网页设计培训哪里有
  • 株洲市住房和城乡建设局门户网站中国建设银行官网站大同
  • 北京响应式网站制作公司wordpress邀请码注册
  • 衡阳网站开发有哪些公司怎么建设淘客自己的网站、
  • 国内扁平化网站欣赏什么站做咨询网站好
  • 评价校园网站建设范例wordpress插件获取数据库
  • 网站开发具体问题重庆装修公司排名前十名
  • 萝卜建站织梦网站采集如何做
  • 邢台在百度上做个网站河南营销网站建设联系方式
  • 电力建设科学技术进步申报网站教学工作总结
  • 做淘宝客必须建网站吗杭州网站优化效果
  • 网站开发有什么职位用vs做网站教程
  • 行业网站渠道选择和内容运营网站续费问题
  • 什么是seo优化推广阿里云网站建设优化
  • 信息发布型网站建设的特点免费
  • 陕西有限公司网站建设招标公告如何做影视网站的标题