单例设计模式,意味着整个系统中只能存在一个实例,比方说像日志对象这种。我们常说的有饿汉式和懒汉式这两种模式来创建单例对象,今天就拓展一下思维,多看几种。 首先我们若是想一个类只有一个对象,那肯定先要私有化构造器,断了在其它的类中使用构造器创建实例的念头。其它的类中不能创建,我们就只能在类中自己创建一 ...
分类:
其他好文 时间:
2019-03-12 14:09:16
阅读次数:
157
一、懒汉式,线程安全 这虽然是线程安全的,但是效率低。 二、饿汉式,线程安全 public class Singleton{ //类加载时就初始化 private static final Singleton instance = new Singleton(); private Singleton ...
分类:
其他好文 时间:
2019-03-07 00:58:00
阅读次数:
237
1.饿汉模式 该模式指调用方法前,实例已经被创建了。 该模式线程安全。 2. 懒汉模式(延迟加载) 所谓延迟加载就是在调用获取实例方法时实例才被创建,常见的实例办法就是在获取实例时进行new 对象。 修改上面myObject代码,继续执行后结果,粗看结果是正确的,但稍微再次修改一下。 可见这种写法存 ...
分类:
编程语言 时间:
2019-03-04 19:24:46
阅读次数:
201
懒汉模式和饿汉模式: 在多线程环境下,代码1和代码2之间,这里会有线程安全问题,线程A和线程B同时到代码1和代码2之间,两个线程同时创建两个对象,这不符合单例模式; 解决方案: 可用双重检查锁来实现 以下是双重检查锁的代码: ...
分类:
编程语言 时间:
2019-03-02 00:42:08
阅读次数:
241
设计模式: ①单例模式(饿汉模式,懒汉模式) ②工厂模式 ③观察者模式 ④代理模式 多线程: 线程池 mysql: 锁:排他锁,共享锁 sql分析:show profiles, explain 索引实现原理(btree) 主从同步怎么实现 冷热数据怎么处理 redis: 哨兵模式 大量key同时过期 ...
分类:
编程语言 时间:
2019-03-01 14:17:14
阅读次数:
193
单例模式 其定义为:单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的一个类只有一个实例。即一个类只有一个对象实例。 实现单例模式的方式 单例模式的实现方式有很多,主要有饿汉模式,懒汉模式,静态内部类,注册登记模式以及通过实现序 ...
分类:
编程语言 时间:
2019-02-28 01:18:59
阅读次数:
204
第一种 懒汉式,线程不安全,无法在多线程工作 第二种 懒汉式,线程安全,但是锁的力度较大,易造成线程阻塞,导致效率低下 第三种,饿汉式,利用ClassLoder机制避免了多线程的同步问题,但是没有Lazy loading的效果 第四种,饿汉式,和第三种无较大差别,在类初始化的时候实例化对象 第五种, ...
分类:
其他好文 时间:
2019-02-27 22:11:16
阅读次数:
221
1. 描述: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 2. 单例模式主要有3个特点,: 2.1 单例类确保自己只有一个实例。 2.2 单例类必须自己创建自己的实例。 2.3 单例类必须为其他对象提供唯一的实例。 3. 实现方式:懒汉单例类和饿汉单例类 3.1 懒汉式单例类 对于懒汉模 ...
分类:
其他好文 时间:
2019-02-26 17:47:36
阅读次数:
149
什么是单例模式 如何实现单例模式呢? 单例模式的七种实现 第一种:懒汉式加载 第二种:饿汉式加载 第三种方式:synchronized 同步式 第四种方式:双重检验锁: 第五种方式:既要懒汉式加载,又要线程安全:静态内部类。 第六种方式:反射和反序列化破坏单例 第七种方式:最后一招,使用枚举 总结 ...
分类:
其他好文 时间:
2019-02-25 11:58:02
阅读次数:
197
核心作用:保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。 常见应用场景: windows的任务管理器,回收站,网站的计数器,数据库连接池的设计,具体项目中比如读取配置文件的类。 单例模式的优点: 由于单例模式只生成一个实例,可以减少系统性能开销,例如当一个对象的产生需要比较多的资源时, ...
分类:
其他好文 时间:
2019-02-24 00:33:18
阅读次数:
179