博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单利模式
阅读量:4325 次
发布时间:2019-06-06

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

通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例

1.懒汉式

//懒汉式 , 线程安全public class Single {    //创建实例对象并且初始化    private static Single instance = null;    //构造器私有化    private Single() {            }    //获取唯一的可用的对象    public static synchronized Single getInstance() {        if(instance == null) {            instance = new Single();        }        return instance;    }        public static void main(String[] args) {        Single s1 = Single.getInstance();        Single s2 = Single.getInstance();        System.out.println(s1 == s2);    }}

 

2.饿汉式

//饿汉式public class Single {        private static final Single instance = new Single();    //构造器私有化    private Single() {            }    //获取唯一的可用的对象    public static Single getInstance() {        return instance;    }        public static void main(String[] args) {        Single s1 = Single.getInstance();        Single s2 = Single.getInstance();        System.out.println(s1 == s2);    }}

 

3.双重锁形式:

//双重锁形式public class Single {        private static volatile Single instance = null;    //构造器私有化    private Single() {            }    //获取唯一的可用的对象    public static Single getInstance() {        if(instance == null) {            synchronized (Single.class) {                if(instance == null) {                    instance = new Single();                }            }        }        return instance;    }        public static void main(String[] args) {        Single s1 = Single.getInstance();        Single s2 = Single.getInstance();        System.out.println(s1 == s2);    }}

 

一般用第三种

 

转载于:https://www.cnblogs.com/Uzai/p/9698330.html

你可能感兴趣的文章
KD树
查看>>
VsVim - Shortcut Key (快捷键)
查看>>
C++练习 | 模板与泛式编程练习(1)
查看>>
HDU5447 Good Numbers
查看>>
08.CXF发布WebService(Java项目)
查看>>
java-集合框架
查看>>
RTMP
查看>>
求一个数的整数次方
查看>>
点云PCL中小细节
查看>>
铁路信号基础
查看>>
Django 学习笔记(五) --- Ajax 传输数据
查看>>
Spring boot 日志 Logback
查看>>
基于OWIN WebAPI 使用OAUTH2授权服务【授权码模式(Authorization Code)】
查看>>
[深入Maven源代码]maven绑定命令行参数到具体插件
查看>>
laravel 分页使用
查看>>
RobotFramework自动化2-自定义关键字
查看>>
centos6.4-x86-64系统更新系统自带Apache Http Server
查看>>
[置顶] 【cocos2d-x入门实战】微信飞机大战之三:飞机要起飞了
查看>>
BABOK - 需求分析(Requirements Analysis)概述
查看>>
第43条:掌握GCD及操作队列的使用时机
查看>>