博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中的单例模式(懒汉式+饿汉式)
阅读量:5053 次
发布时间:2019-06-12

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

什么是单例模式:

  单例模式既只能在自己本类中创建有且唯一的一个实例(姑且不考虑映射的情况)通过方法将该实例对外公开

第一种:单例模式—懒汉式

  既调用getInstance()方法返回实例之前判断有没有该实例如果没有就创建一个实例 如果有该实例则直接返回出去,代码如下:

class Singleton{        //单例-懒汉模式    public static Singleton singleton = null;        //构造方法私有化    private Singleton(){            }        //加锁保证线程的安全    public synchronized static Singleton getInstance(){        if(singleton == null){            singleton = new Singleton();        }        return singleton;    }    /*(双重锁)保证线程的安全性    public static Singleton getInstance(){        if(singleton == null){            synchronized(Singleton.class){                if(singleton == null){                    singleton = new Singleton();                }                        }                }        return singleton;    }*/}

第二种:单例模式-饿汉式

       恶汉模式比懒汉模式更简单 就是通过静态常量类加载的时候直接初始化,通过Instance()方法将该实例返回出去

class Singleton{    //申明一个实例的引用直接实例化    public static Singleton singleton = new Singleton();    //构造方法私有化    private Singleton(){            }    //调用该方法将实例返回出去    public static Singleton getInstance(){        return singleton;    }}

 

转载于:https://www.cnblogs.com/cpstart/p/5990607.html

你可能感兴趣的文章
③面向对象程序设计——封装
查看>>
【19】AngularJS 应用
查看>>
Spring
查看>>
Linux 系统的/var目录
查看>>
Redis学习---Redis操作之其他操作
查看>>
WebService中的DataSet序列化使用
查看>>
BZOJ 1200 木梳
查看>>
【Linux】【C语言】菜鸟学习日志(一) 一步一步学习在Linxu下测试程序的运行时间...
查看>>
hostname
查看>>
SpringBoot使用其他的Servlet容器
查看>>
关于cookie存取中文乱码问题
查看>>
mysql 多表管理修改
查看>>
group by order by
查看>>
Oracle学习之简单查询
查看>>
log4j配置
查看>>
linux 配置SAN存储-IPSAN
查看>>
java学习笔记之String类
查看>>
pymysql操作mysql
查看>>
Linux服务器删除乱码文件/文件夹的方法
查看>>
牛腩记账本core版本源码
查看>>