首页 > 其他分享 >单例模式

单例模式

时间:2023-05-13 20:37:25浏览次数:37  
标签:单列 模式 实例 线程 单例 序列化 加载

单列模式

一、静态引用变量直接实力例化对象

随着类装载就完成实例化

微信图片_20230419145511

二、使用代码块,和一一样

微信图片_20230419145437

三、懒汉式加载

前两个是类装载就完成实例化,不是当需要调用的时候才实例化

微信图片_20230419145500

四、三的改进,加锁避免线程安全的问题,但是耗时,不高效

微信图片_20230419145457

五、用静态代码块缩小锁的范围,但是还是会出现线程的问题

微信图片_20230419145519

六、双重检查解决线程安全问题(volatie是用来解决JTI的指令重排问题,防止在没有初始化之前就返回instance)

微信图片_20230419145515

七、用的最多的内部类的方式

外部类加载一次,内部类也只加载一次,实例化也只进行一次。而且外部类加载时是不加载内部类的,只有在调用这个内部类的时候才会加载。

微信图片_20230419145504

八、effective java中提出的枚举写法是最好的单列模式

前面的单列模式都不能解决序列化问题,这个可以防止反序列化问题

微信图片_20230419145507

标签:单列,模式,实例,线程,单例,序列化,加载
From: https://www.cnblogs.com/liu-jin/p/17398120.html

相关文章

  • ARMv7-A 处理器窥探(1) —— 处理器模式
    arm官方资料ARMArchitectureReferenceManualARMv7-AandARMv7-Redition.pdf1、处理器模式1.1、特权等级ARMv7架构支持安全扩展,如果使能了安全扩展,ARMv7-A架构分为安全模式(SecureState)和非安全模式(Non-secureState)两个世界。在非安全模式下,存在三种运行特权PL0,PL1和P......
  • 代理模式--静态代理+动态代理
    静态代理利用程序实现客户通过中介向房东租房的案例:优缺点理解:代理模式的具体步骤:动态代理同样是以租房为例:需要代理的类是租房的Rent类:Rent.javapackageorg.example.Test;publicinterfaceRent{publicvoidrent();}Host.javapackageorg.example.Te......
  • 设计模式-工厂模式
    工厂模式(FactoryPattern)是Java中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。简单来说就是:我们创建一个工厂类,然后当......
  • 台达PLC-EH3.铆压机,3轴,Z轴(SMC)电缸下降的距离用的是位置加扭矩模式,台达PLC MODBUS通
    台达PLC-EH3.铆压机,3轴,Z轴(SMC)电缸下降的距离用的是位置加扭矩模式,台达PLCMODBUS通讯控制台达A2伺服扭矩,自动上下料,每个点位可跳点,可设位置和扭矩,PLC程序有完整的注释,触摸屏程序,伺服参数设定程序.电气BOM.电气CAD图纸。ID:6620665415434852......
  • FPGA以SPI模式读写SD卡,已经下板验证通过。 可移植到任何FP
    FPGA以SPI模式读写SD卡,已经下板验证通过。可移植到任何FPGA之中。ID:85100653023033019......
  • FPGA以SDIO模式读写SD卡源码,可移植到任何FPGA中。 在S
    FPGA以SDIO模式读写SD卡源码,可移植到任何FPGA中。在SDIO模式下,SD卡读写速率50Mbps以上。文件里包含tb和说明文档,已经下板验证通过。YID:17200653395070926......
  • 适配器模式(Adapter Pattern)
    模式动机适配器模式(AdapterPattern)是一种使用频率非常高的结构型模式,如果在系统中存在不兼容的接口,可以通过引入一个适配器来使得原本因为接口不兼容而不能一起工作的两个类可以协同工作。适配器模式中适配器的作用与现实生活中存在的电源适配器、网络适配器等作用相同。在引入......
  • C/C++思考:命令模式在控制中的应用
    目录意义问题用命令模式解决电机控制与输入信号耦合问题与标准命令模式的区别异同意义先说结论:命令模式能有效对代码模块进行解耦,增强模块的扩展性以及可移植性。问题为了方便说明问题,假设现在有一个电机Motor,在识别到外界信号后,通过软件控制其旋转。需要支持的旋转方式为3种:......
  • 对工厂模式一次感悟
    从开始接触设计模式的“什么都可以用设计模式去设计”,到接触一段时间之后的“用什么设计模式,直接莽就是了”。一直到现在,对设计模式的认知一直都处在一个模糊的状态。之前虽然也自己尝试在项目中使用一些设计模式,但总是体会不到设计模式在实际使用中的好处,直到最近,接触到了一种业......
  • 台达PLC-EH3.铆压机,3轴,Z轴(SMC)电缸下降的距离用的是位置加扭矩模式,台达PLC MODBUS通
    台达PLC-EH3.铆压机,3轴,Z轴(SMC)电缸下降的距离用的是位置加扭矩模式,台达PLCMODBUS通讯控制台达A2伺服扭矩,自动上下料,每个点位可跳点,可设位置和扭矩,PLC程序有完整的注释,触摸屏程序,伺服参数设定程序.电气BOM.电气CAD图纸。ID:3618670233899230......