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

阿里巴巴网站推广怎么做wordpress怎么做说说

阿里巴巴网站推广怎么做,wordpress怎么做说说,服务式办公室网,软件开发去哪里学1. 单例模式,Singleton Pattern 1.1 Definition 定义 单例模式是确保类有且仅有一个实例的创建型模式,其提供了获取类唯一实例(全局指针)的方法。 单例模式类提供了一种访问其唯一的对象的方式,可以直接访问&#xf…

1. 单例模式,Singleton Pattern

1.1 Definition 定义

单例模式是确保类有且仅有一个实例的创建型模式,其提供了获取类唯一实例(全局指针)的方法。
单例模式类提供了一种访问其唯一的对象的方式,可以直接访问,而不需要实例化该类的对象。

1.2 Motivation 动机

Sometimes we want just a single instance of a class to exist in the system. For example, we want just one window manager, or just one factory for a family of products.
有时我们只希望系统中存在一个类的单个实例。例如,我们只需要一个窗口管理器,或者一个产品系列只需要一个工厂。

1.3 Benefit 益处

  • Controlled access to sole instance. 对唯一实例的受控访问
  • More flexible than static class (class with all static properties and methods). 比静态类灵活
    • Static class must be stateless; Singleton could be stateful. 静态类必须无状态,单例可以有状态

1.4 实现

  • 私有构造方法
  • 获取唯一实例引用的静态方法

2. 单例模式类型

2.1 懒汉式-线程不安全

  • 懒加载:是
  • 线程安全:否
public class LazyLoadingSingleton {private static LazyLoadingSingleton lazyLoadingSingleton;private LazyLoadingSingleton() {}public static LazyLoadingSingleton singleton() {if (lazyLoadingSingleton == null) {lazyLoadingSingleton = new LazyLoadingSingleton();}return lazyLoadingSingleton;}public void log(String msg) {System.out.println("Log: " + msg);}
}

2.2 懒汉式-线程安全

  • 懒加载:是
  • 线程安全:是
  • 优点:首次调用初始化,避免内存占用
  • 缺点:影响效率
public class LazyLoadingSingleton {private static LazyLoadingSingleton singleton;private LazyLoadingSingleton() {}public static synchronized LazyLoadingSingleton singleton() {if (singleton == null) {singleton = new LazyLoadingSingleton();}return singleton;}public void log(String msg) {System.out.println("Log: " + msg);}
}

2.3 饿汉式

建议采用

  • 懒加载:否
  • 线程安全:是
  • 优点:未加锁,效率高
  • 缺点:类加载时初始化,浪费内容
public class ClassLoadSingleton {private static ClassLoadSingleton singleton = new ClassLoadSingleton();private ClassLoadSingleton() {}public static ClassLoadSingleton singleton() {return singleton;}public void log(String msg) {System.out.println("Log: " + msg);}
}

解法:静态内部类,延迟类加载的对象实例化

public class ClassLoadSingleton {// private static ClassLoadSingleton singleton = new ClassLoadSingleton();private static class SingleHandler {private static final ClassLoadSingleton singleton = new ClassLoadSingleton();}private ClassLoadSingleton() {}public static ClassLoadSingleton singleton() {return SingleHandler.singleton;}public void log(String msg) {System.out.println("Log: " + msg);}
}

2.4 双重校验锁:校验是否为空

双次校验是否为空,类加锁在双次校验之中
可以使用

  • 懒加载:是
  • 线程安全:是
  • 优点:保证多线程下的效率
package singleton;public class DoubleCheckSingleton {private volatile static DoubleCheckSingleton singleton;private DoubleCheckSingleton() {}public static DoubleCheckSingleton singleton() {if (singleton == null) {synchronized (DoubleCheckSingleton.class) {if (singleton == null) {singleton = new DoubleCheckSingleton();}}}return singleton;}public void log(String msg) {System.out.println("Log: " + msg);}
}

关于 volatile 易失性关键字:
volatile 提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有 volatile 关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值(在某一线程写入寄存器但且未写入变量地址),如果这个变量由别的程序更新了的话,将出现不一致的现象。

http://www.yayakq.cn/news/127833/

相关文章:

  • 商城网站设计说明书高职两学一做专题网站
  • 咸阳市网站开发学历低的人不适合学编程
  • 装修网网站建设成品短视频app源码的优点
  • 上海集团网站制作佛山南海网站开发
  • 做互联网网站待遇360建筑网怎么重新注册
  • 松溪网站建设wzjseo网址注册查询系统
  • 南开做网站公司百度权重5的网站能卖多少钱
  • 外管局网站做延期收汇报告代做土木工程专业毕业设计网站
  • 门户网站中综合性程度高的是东四网站建设
  • 住房新建网站asp sql网站安全性
  • 企业建站流程中国廉政文化建设网站
  • 缙云县建设局网站有什么网站是做办公家具
  • 电商网站改版方案dream网站怎么做框架
  • html淘宝店铺网站模板wordpress小黄锁
  • 龙游住房和城乡建设局网站四川省建设厅网站填报获奖
  • 厦门手机网站建设公司mysql数据库网站
  • 网页设计网站排行榜网站设计主题选择
  • 精品资源共享课程网站建设论文俱乐部网站方案
  • 东莞企业网站推广技巧云南昆州建设工程有限公司网站
  • 做本地网站赚钱吗?土木特网站建设
  • 服装网站建设前期规划方案网站后台清空
  • 绵阳网站建设工作室求职网站开发开题报告
  • 江苏 江苏省住房和城乡建设厅网站elementui 企业官网模板
  • 淘宝网站设计分析网站建设费用初步预算
  • 佛山本地的网站设计公司榆林网站建设公司电话
  • 南京网站设公司lol视频网站源码
  • 外贸网站用什么语言wordpress的好
  • 昆山普立斯特做的有网站温州做网站定制
  • 济南哪家公司做网站如何制作网站网页
  • 整站优化代理重庆网站查询