五、单例设计模式

/*
设计模式:解决某一类问题最有效的方式

单例设计模式:解决的是一个类在内存中只有一个对象的问题
1:构造方法私有化
2:构造方法私有化之后,一个对象都不能创建了,所以只能在类中创建对象
*/
//饿汉式
class Single
{
    private static Single single=new Single();

    private Single(){}

    public static Single getInstance()
    {
        return single;
    }
}
//懒汉式
class Single2
{
    private static Single2 single=null;

    private Single2(){}

    public static Single2 getInstance()
    {
        if(single==null)
            single=new Single2();
        return single;
    }
}
class Demo15
{
    public static void main(String[] args)
    {
        //new Single();
        //new Single();
        //Single.single=null;
        //System.out.println(Single.single);

        Single s1=Single.getInstance();
        Single s2=Single.getInstance();

        System.out.println(s1==s2);

    }
}
时间: 2024-08-29 11:24:43

五、单例设计模式的相关文章

JAVA学习第二十五课(多线程(四))- 单例设计模式涉及的多线程问题

一.多线程下的单例设计模式 利用双重判断的形式解决懒汉式的安全问题和效率问题 //饿汉式 /*class Single { private static final Single t = new Single(); private Single(){} public static Single getInstance() { return t; } } */ //懒汉式 class Single { private static Single t = null; private Single()

GOF设计模式之1:单例设计模式

1.单例设计模式核心作用: 保证一个类只有一个实例,并且提供了访问该实例的全局访问点 2.常见应用场景: window的任务管理器 项目中读取配置文件一般也是一个单例模式 数据库连接池的设计也是采用单例模式,因为数据库连接是一种数据库资源 操作系统的文件管理系统,也是单例模式,一个操作系统只能有一个文件系统 Application也是单例的应用(Servlet编程或者Android的Application类) 在Spring中,每个bean默认也是单例的,这样的有点儿事Spring容器可以管理

iOS开发之单例设计模式(完整正确版本)

单例的意思从字面上就可以略知一二,所谓单例就是确保在程序运行过程中只创建一个对象实例.可以用于需要被多次广泛或者说多次使用的资源中,比如我们常见的网络请求类.工具类以及其它管理类等.比如我iOS开发中常见的系统单例[UIApplication sharedApplication].[NSUserDefaults  standardUserDefaults]等.在iOS开发中,单例模式是非常有用的一种设计模式.如下图,是一个简单的例模式的UML类图. 一.使用单例模式的作用 它可以保证某个类在程序

单例设计模式与类加载顺序详解

单例设计模式几种实现 (测试所用jdk版本1.8.0_20) 第一种: 1 public final class SingleInstance1 { 2 3 private static volatile SingleInstance1 singleInstance = null; 4 /* 5 * 必须定义,防止jvm提供默认构造函数(默认的为public)这样就失去了单例的特性, 6 * 因为可以new一个实例 7 */ 8 private SingleInstance1(){} 9 pub

Java设计模式—单例设计模式(Singleton Pattern)全然解析

转载请注明出处:http://blog.csdn.net/dmk877/article/details/50311791 相信大家都知道设计模式,听的最多的也应该是单例设计模式,这种模式也是在开发中用的最多的设计模式,可能有非常多人会写几种设计模式.那么你是否知道什么是设计模式?为什么会有单例设计模式即它的作用是什么?单例模式有哪些写法?对于这种问题.可能有部分童鞋并不能非常好的回答,没关系今天就和大家一起来具体的学习下单例设计模式,相信通过学习本篇你将对单例设计模式有个具体的理解. 如有谬误欢

JAVA之旅(十四)——静态同步函数的锁是class对象,多线程的单例设计模式,死锁,线程中的通讯以及通讯所带来的安全隐患,等待唤醒机制

JAVA之旅(十四)--静态同步函数的锁是class对象,多线程的单例设计模式,死锁,线程中的通讯以及通讯所带来的安全隐患,等待唤醒机制 JAVA之旅,一路有你,加油! 一.静态同步函数的锁是class对象 我们在上节验证了同步函数的锁是this,但是对于静态同步函数,你又知道多少呢? 我们做一个这样的小实验,我们给show方法加上static关键字去修饰 private static synchronized void show() { if (tick > 0) { try { Thread

小看--单例设计模式

(一)单例设计描述 只要了解过设计模式的同学都会知道:单例设计模式,大家都知道单例设计模式是一种创建行的设计模式.既然是创建型,那么先来讲讲,对象的创建的过程吧. --静态成员:静态成员在程序加载的时候,就会加载进内存. --实例成员:只有new的时候才有实例成员.1.为实例的数据字段分配内存,然后初始化对象的附加字段(类型指针和同步索引块),最后调用类型的实例构造器来设置对象的初始化状态. 单例模式:一般用在一个类的创建对象很消耗资源,消耗时间,并且系统要保证只有一个对象的时候.一句话,对象的

(一)初识23种设计模式之-----单例设计模式

一  什么是设计模式? 通俗来说,设计模式就是牛人总结的解决某个问题的方案,这套方案被大多数人熟知和认可. 设计模式大致分为三种: 结构型 过滤器模式 组合模式 装饰器模式 外观模式 享元模式,代理模式 创建型    单例模式 工厂模式 抽象工厂模式 建造者模式 原型模式 行为型       责任链模式 命令模式 解释器模式 迭代器模式 中介者模式 备忘录模式 观察者模式 状态模式 空对象模式 策略模式  模板模式 访问者模式 说起设计模式,就不得不说起设计模式的六大设计原则 一  单一职责原则

Java单例设计模式的实现

1. 单例设计模式的定义 单例设计模式确保类只有一个实例对象,类本身负责创建自己的对象并向整个系统提供这个实例.在访问这个对象的时候,访问者可以直接获取到这个唯一对象而不必由访问者进行实例化. 单例设计模式保证了全局对象的唯一性,在许多场景中都有应用.例如Windows中多个进程或线程同时操作一个文件的时候,所有的进程或线程对于同一个文件的处理必须通过唯一的实例来进行. 2. java单例设计模式的几种实现方式 单例设计的最大特点是类的构造函数是私有的,确保了只能由类本身创建对象,而访问者无法进