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

大连外经贸网站廊坊建站模板系统

大连外经贸网站,廊坊建站模板系统,嘉禾专业网站建设,市场调研报告怎么写的定义单例模式(Singleton Pattern)是java最简单的设计模式之一,用于保证某个类在运行期间只有一个实例对外提供服务,我们称这种类型的类为单例类。设计原则1. 保证一个类只有一个实例;2. 为实例提供一个全局访问点。实现…

定义

        单例模式(Singleton Pattern)是java最简单的设计模式之一,用于保证某个类在运行期间只有一个实例对外提供服务,我们称这种类型的类为单例类。

设计原则

        1. 保证一个类只有一个实例;

        2. 为实例提供一个全局访问点。

实现方式

饿汉式

代码示例

package com.sumlv.javase.note;/*** 单例示例** @Auther: yuzhuo.song* @Date: 2025-03-14*/
public class Singleton {private static Singleton instance = new Singleton();public static Singleton getInstance() {return instance;}/*** 用于避免序列化对单例的破坏* 如果单例类没有实现序列化接口则不需要该方法* * @return 实例对象*/private Object readResolve() {return instance;}/*** 用于避免反射对单例的破坏*/private Singleton() {if (instance != null) {throw new RuntimeException("illegal access");}}}

补充说明

        1. 线程安全;

        2. 不支持延时加载;

        3. 获取实例对象速度较快;

        4. 如果实例对象较大且一直未使用会造成内存浪费。

懒汉式

代码示例

package com.sumlv.javase.note;/*** 单例示例** @Auther: yuzhuo.song* @Date: 2025-03-14*/
public class Singleton {private static Singleton instance;public static synchronized Singleton getInstance() {if (instance == null) {instance = new Singleton();}return instance;}/*** 用于避免序列化对单例的破坏* 如果单例类没有实现序列化接口则不需要该方法* * @return 实例对象*/private Object readResolve() {return instance;}/*** 用于避免反射对单例的破坏*/private Singleton() {if (instance != null) {throw new RuntimeException("illegal access");}}}

补充说明

        1. 支持延迟加载;

        2. 保证多线程模式下实例的唯一性;

        3. 并发度低,在频繁调用时会产生性能瓶颈。

双重检查锁

代码示例

package com.sumlv.javase.note;/*** 单例示例** @Auther: yuzhuo.song* @Date: 2025-03-14*/
public class Singleton {private static volatile Singleton instance;public static Singleton getInstance() {if (instance == null) {synchronized (Singleton.class) {if (instance == null) {instance = new Singleton();}}}return instance;}/*** 用于避免序列化对单例的破坏* 如果单例类没有实现序列化接口则不需要该方法* * @return 实例对象*/private Object readResolve() {return instance;}/*** 用于避免反射对单例的破坏*/private Singleton() {if (instance != null) {throw new RuntimeException("illegal access");}}}

补充说明

        1. 支持延迟加载;

        2. 并发度高,在频繁调用时不会产生性能瓶颈。

静态内部类

代码示例

package com.sumlv.javase.note;/*** 单例示例** @Auther: yuzhuo.song* @Date: 2025-03-14*/
public class Singleton {public static Singleton getInstance() {return InnerClass.instance;}/*** 用于避免序列化对单例的破坏* 如果单例类没有实现序列化接口则不需要该方法* * @return 实例对象*/private Object readResolve() {return InnerClass.instance;}/*** 用于避免反射对单例的破坏*/private Singleton() {if (InnerClass.instance != null) {throw new RuntimeException("illegal access");}}private static class InnerClass {private static Singleton instance = new Singleton();}}

补充说明

        1. 支持延迟加载;

        2. 并发度高,在频繁调用时不会产生性能瓶颈。

        3. 实现方式相较于双重检查锁更为简洁。

枚举

代码示例

package com.sumlv.javase.note;/*** 单例示例** @Auther: yuzhuo.song* @Date: 2025-03-14*/
public enum Singleton {INSTANCE;public static Singleton getInstance() {return INSTANCE;}}

补充说明

        1. 最简单的单例实现方式;

        2. 线程安全;

        3. 无需关心反射和序列化对单例造成破坏;

http://www.dtcms.com/a/543967.html

相关文章:

  • 温州阿里巴巴网站建设宁波外贸公司排行
  • 查备案网站网店推广的目的是什么
  • 新网站如何做优化巴适网站建设
  • 淮安市盱眙县建设局网站重庆网站公司建设
  • 网站域名变更怎么查搜索引擎seo优化
  • 网站被谷歌收录摄影网站备案
  • 活动网站建设app展示网站模板免费下载
  • 寻找网站优化公司站长之家关键词查询
  • 淘宝做链接的网站wordpress 缩略图尺寸
  • 网站友情链接出售河南seo排名
  • 网站模板大全 优帮云wordpress 启用压缩
  • 做卡盟网站做网站能赚多少钱
  • 网站建设 别墅移动互联网开发平台有哪些
  • 仿网站视频教程工作室名字创意好听
  • 医院网站建设方案计划重视网站建设
  • 苏ICP备网站建设中企动力无锡推广普通话绘画
  • 怎么做一个网站怎么样免费可商用素材网站
  • 和政网站建设萧山大江东规划国土建设局网站
  • 嘉定网站建设哪里好wordpress android api
  • 建设网站涉及的技术哪儿有做字体设计的网站
  • 坪山网站的建设有哪些可以做包装袋的网站
  • 淮安市盱眙县建设局网站文旅网站界面设计
  • 徐州建站公司哪家好wordpress主题汉化软件
  • 沈阳企业网站设计制作做二手机网站
  • 教育类网站开发公司湘潭做网站价格 q磐石网络
  • 网站百度百科怎么做网站支付页面设计
  • 网站分享云南建设网站首页
  • 建设部科研申报网站用着不好渗透wordpress论坛
  • 向雅虎提交网站百度seo关键词优化软件
  • 建设软件网站北京cms建站模板