设计模式单例模式:4-静态代码块模式

Gerrard_Feng Gerrard_Feng     2022-09-18     426

关键词:

思想:

 

  这一种单例模式的实现,我本来并不准备单独提出来,因为我认为这种模式,和饿汉模式,没有本质的区别。

  但是在 sun.misc.Unsafe 的源码中却实际应用到了这种设计,所以才特地介绍一下。

  简单的说,就是把初始化的工作,放到静态代码块中。

  由于初始化的时间比饿汉模式更加早,我有个同事把它称之为:难民模式。

 

技术分享
 1 public final class StaticBlockSingleton {
 2 
 3     private static final StaticBlockSingleton instance;
 4 
 5     private StaticBlockSingleton() {
 6         if (instance != null) {
 7             throw new IllegalStateException();
 8         }
 9     }
10 
11     static {
12         instance = new StaticBlockSingleton();
13     }
14 
15     public static final StaticBlockSingleton getInstance() {
16         return instance;
17     }
18 
19 }
静态代码块模式

 

  与饿汉模式相同,不存在多线程及反射打破单例的可能性。

 

使用静态代码块来实现单例模式

packagecom.wz.thread.staticlump;/** *使用静态代码块来实现单例模式 *@authorAdministrator * */publicclassMyObject{      privatestaticMyObjectinstance=null;   查看详情

设计模式---单例模式(代码片段)

单例模式单例模式的介绍单例模式实现的八种方式饿汉式静态常量静态常量的优缺点静态代码块静态代码块的优缺点懒汉式线程不安全的写法优缺点线程安全,同步锁---效率低,不推荐优缺点线程安全,同步代码块---... 查看详情

单例设计模式之饿汉式(静态代码块)(代码片段)

packagecom.waibizi.demo02;/***单例设计模式之饿汉式(静态代码块)*这种方式与饿汉式静态常量的方式是类似的,类装载的时候也有直接创建对象*@author歪鼻子**/@SuppressWarnings("all")publicclassSingleton_Patternpublicstaticvoidmain(String[]args)//TODOAuto... 查看详情

尚硅谷设计模式学习---[单例模式](代码片段)

...#x1f680;🚀🚀尚硅谷传送门==>B站尚硅谷Java设计模式❤❤❤感谢尚硅谷❤❤❤🛴🛴🛴最近开始计划学习一下设计模式了,加油!!!目录单例模式🛴1.饿汉式(静态常量版)🛴2.饿汉式(静态代码块版)&#x... 查看详情

单例设计模式

??单例设计模式想要实现单例设计模式的核心就是构造方法的私有化分为两种:饿汉单例模式和饱汉单例模式饿汉单例模式(推荐使用) 核心要点:1.构造器私有化2.提供一个私有属性的Singleton对象3.利用static{}代码块来new 创建... 查看详情

设计模式创建型模式之单例设计模式(代码片段)

【设计模式】创建型模式之单例设计模式文章目录【设计模式】创建型模式之单例设计模式1.概述2.结构3.实现3.1饿汉式:静态变量方式实现3.2饿汉式:静态代码块方式实现3.3饿汉式:枚举方式实现(推荐)3.4懒汉式:... 查看详情

java设计模式——单例模式八种方式(代码片段)

...录单例模式简介:单例模式优点:应用场景:单例设计模式的八种方式:1、饿汉式(静态常量)2、饿汉式(静态代码块)3、懒汉式(线程不安全)4、懒汉式(线程安全,同步方法)5、懒... 查看详情

创建型模式之单例模式(代码片段)

一、介绍类的单例设计模式,就是采用一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。二、单例模式八种方式饿汉式(静态常量)饿汉式(静态代... 查看详情

singletonpattern(单例模式)

单例模式,确保某个类只能生成一个实例单例模式的构造方法必须定义为私有(private)的必须要定义一个静态(static)的方法,作为生成这个对象实例的入口[java] viewplain copypackage com.singleton;  //静态代码块不... 查看详情

单例模式(代码片段)

...造器私有*2.定义一个静态常量保存一个唯一的实例对象(单例)*3.提供一个静态方法返回单例对象*/publicclassSingleton01publicstaticfinalSingleton01INSTANCE=newSingleton01();privateSingleton01()publicstaticSingleton01getInstance()returnINSTANCE;classTest01publicstati... 查看详情

设计模式创建者模式(单例&工厂&原型&建造者)(代码片段)

文章目录1.单例设计模式1.1单例模式概述1.2单例模式的实现1.2.1饿汉式(静态变量方式)1.2.2饿汉式(静态代码块方式)1.2.3懒汉式(线程不安全)1.2.4懒汉式(双重检查锁)1.2.5懒汉式(静态内部... 查看详情

设计模式@第5章:单例设计模式(代码片段)

第5章:单例设计模式一、单例设计模式介绍所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。比如Hibernate的SessionFa... 查看详情

单例模式

单例模式,就是采取一定的方法保证整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)1.单例模式的八种方式饿汉式(静态常量)饿汉式(静态代码块)懒汉式(线程不安全)懒汉... 查看详情

单例模式(代码片段)

一:饿汉式单例模式,优点:线程绝对安全,无锁,效率高。缺点:类加载的时候就初始化,不管用不用,都占用空间。publicclassHungrySingleton//先静态、后动态//先属性、后方法//先上后下privatestaticfinalHungrySingletonhungrySingleton=newHun... 查看详情

详解单例模式(代码片段)

关于单例模式,话不多说,即程序运行时无论New了多少次,即内存中只有一个实例对象。即对象的HasHCode一致。单例模式的两大类1、饿汉模式(即加载时就创建对象)  -1、直接实例化饿汉模式  -2、静态代码块饿汉模式(... 查看详情

设计模式创建者模式(单例&工厂&原型&建造者)(代码片段)

文章目录1.单例设计模式1.1单例模式概述1.2单例模式的实现1.2.1饿汉式(静态变量方式)1.2.2饿汉式(静态代码块方式)1.2.3懒汉式(线程不安全)1.2.4懒汉式(双重检查锁)1.2.5懒汉式(静态内部... 查看详情

设计模式创建者模式(单例&工厂&原型&建造者)(代码片段)

文章目录1.单例设计模式1.1单例模式概述1.2单例模式的实现1.2.1饿汉式(静态变量方式)1.2.2饿汉式(静态代码块方式)1.2.3懒汉式(线程不安全)1.2.4懒汉式(双重检查锁)1.2.5懒汉式(静态内部... 查看详情

设计模式之单例模式详解和应用(代码片段)

目录1单例模式的应用场景介绍2饿汉式单例模式2.1静态方法获得私有成员对象2.2利用静态代码块与类同时加载的特性生成单例对象2.3优缺点3懒汉式单例模式2.1加锁2.2双重检查锁2.3静态内部类4反射破坏单例5序列化破坏单例(... 查看详情