博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程专题 - 单例模式和多线程
阅读量:4041 次
发布时间:2019-05-24

本文共 1713 字,大约阅读时间需要 5 分钟。

  1. 立即加载
  2. 延迟加载
  3. 使用静态内置类实现单例模式
  4. 序列化和反序列化的单例模式实现
  5. 使用static代码块实现单例模式
  6. 完善使用enum美剧实现单例模式

 

1.立即加载的单例模式

public class Singleton {private static Singleton instance=new Singleton();private Singleton() {}public static Singleton getInstance() {return instance;}}

2.延迟加载的单例模式

public class Singleton {private static Singleton instance;private Singleton() {}public static Singleton getInstance() {if(null!=instance) {}else {synchronized(Singleton.class) {if(null==instance) {instance=new Singleton();}}}return instance;}}

3.使用静态内置类实现单例模式,对序列化对象无能为力

public class Singleton {private Singleton() {}private static class SingletonHandle{private static Singleton Instance=new Singleton();}public static Singleton getInstance() {return SingletonHandle.Instance;}}

4.序列化和反序列化的单例模式实现

import java.io.ObjectStreamException;import java.io.Serializable;public class Singleton implements Serializable{private static final long serialVersionUID = 282571242107328345L;private Singleton() {}private static class SingletonHandle{private static Singleton Instance=new Singleton();}public static Singleton getInstance() {return SingletonHandle.Instance;}protected Object readResolve() throws ObjectStreamException{return SingletonHandle.Instance;}}

5.使用static代码块实现单例模式

public class Singleton{private static Singleton instance;private Singleton() {}static {instance=new Singleton();}public static Singleton getInstance() {return instance;}}

6.完善使用enum枚举实现单例模式

public class Singleton{public enum SingletonEnum{singletonEnum;private Singleton instance;private SingletonEnum() {instance=new Singleton();}public Singleton getInstance() {return instance;}}public static Singleton getInstance() {return SingletonEnum.singletonEnum.getInstance();}}

这几种单例模式中,前三种比较多见。

 

转载地址:http://ubvdi.baihongyu.com/

你可能感兴趣的文章
spring JdbcTemplate 的若干问题
查看>>
Servlet和JSP的线程安全问题
查看>>
GBK编码下jQuery Ajax中文乱码终极暴力解决方案
查看>>
Oracle 物化视图
查看>>
PHP那点小事--三元运算符
查看>>
解决国内NPM安装依赖速度慢问题
查看>>
Brackets安装及常用插件安装
查看>>
Centos 7(Linux)环境下安装PHP(编译添加)相应动态扩展模块so(以openssl.so为例)
查看>>
fastcgi_param 详解
查看>>
Nginx配置文件(nginx.conf)配置详解
查看>>
标记一下
查看>>
IP报文格式学习笔记
查看>>
autohotkey快捷键显示隐藏文件和文件扩展名
查看>>
Linux中的进程
查看>>
学习python(1)——环境与常识
查看>>
学习设计模式(3)——单例模式和类的成员函数中的静态变量的作用域
查看>>
自然计算时间复杂度杂谈
查看>>
当前主要目标和工作
查看>>
Intellij IDEA启动优化,让开发的感觉飞起来
查看>>
使用 Springboot 对 Kettle 进行调度开发
查看>>