Java设计模式_单例设计模式

翻译 2017年02月28日 20:40:20
/**
 * 单例设计模式:饿汉式,不适用于多线程,效率低
 */
public class SingleTest {
    //定义一个私有的构造方法
    private SingleTest()
    {}
    //将自身的实例对象设置成静态 final
    private static final SingleTest instance = new SingleTest();
    private static SingleTest getInstance(){
        return instance;

}

}

/**
 * 单例设计模式:饱汉式,非线程安全
 */
public class SingleTest {
    //定义一个私有的构造方法
    private SingleTest()
    {}
    //将自身的实例对象设置成静态(不初始化,没有final修饰)
    private static  SingleTest instance ;
    private static SingleTest getInstance(){
        if(instance==null)
            instance = new SingleTest();
        return instance;
    }
}
/**
 * 单例设计模式:饱汉式,线程安全,效率不高
 */
public class SingleTest {
    //定义一个私有的构造方法
    private SingleTest()
    {}
    //将自身的实例对象设置成静态(不初始化,没有final修饰)
    private static  SingleTest instance ;
    private static synchronized SingleTest getInstance(){
        if(instance==null)
            instance = new SingleTest();
        return instance;
    }
}

/**
 * 单例设计模式:饱汉式,最优解
 */
public class SingleTest {
    //定义一个私有的构造方法
    private SingleTest()
    {}
    //将自身的实例对象设置成静态(不初始化,没有final修饰,使用volatile保证了线程访问时instance变量的可见性,
    // 避免了instance初始化时其他属性还没赋值完时被另外的线程调用)
    private static  volatile  SingleTest instance ;
    private static  SingleTest getInstance(){
        // 对象实例化时与否判断(不使用同步代码块,instance不等于null时,直接返回对象,提高运行效率)
        if(instance==null)
        {
            //同步代码块(对象未初始化时,使用同步代码块,保证多线程访问时对象在第一次创建后,不再重复被创建)
            synchronized (SingleTest.class)
            {
                //未初始化,则初始instance变量
                if(instance==null)
                    instance = new SingleTest();
            }
        }
        return instance;
    }
}


Java设计模式之一 单例设计模式

设计模式: 设计模式的概念首先来源于其它行业:建筑业,在早起建房子的时候,肯定是经验缺乏、显得杂乱无序的,这就会造成很多问题,在行业发展过程,通过不断的经验积累,前辈们针对这些问题提出了合理解决方案...
  • qq_32736689
  • qq_32736689
  • 2016-04-07 08:29:45
  • 2537

Java设计模式(十) 你真的用对单例模式了吗?

本文介绍了为何需要单例模式,单例模式的设计要点,饿汉和懒汉的区别,并通过实例介绍了实现单例模式的九种实现方式及其优缺点。...
  • Habren
  • Habren
  • 2016-05-16 08:20:40
  • 880

Java四种单例设计模式

Java中的四种单例模式单例模式是最容易理解的设计模式之一,介绍Java中单例模式的四种写法。1.饿汉式单例模式public class Singleton{ private static S...
  • twocold_2010
  • twocold_2010
  • 2016-11-20 15:13:30
  • 1144

java面试题:java中的单例设计模式及两种实现方法的代码举例

java面试时经常会问到关于单例设计模式,因为它能考察的知识点较多且在开发中经常用到。 那我就来说一说我对于单例设计模式的一些浅见。 首先,在Java中,什么是单例呢? 就是保证类在内存中只有一...
  • qq_24693837
  • qq_24693837
  • 2016-11-23 20:49:03
  • 1243

java设计模式之五 —— 单例模式的三种模式优缺点整理

本来一直以为单例很简单,不打算整理了。不过本着求学需严谨的心态,还是去看了一下。确实有所收获。单例模式:单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供...
  • a1961613299
  • a1961613299
  • 2015-08-14 18:01:32
  • 1444

java设计模式之单例模式5种方法及优缺点小结

单例设计模式的用处。单例设计模式是指,某个类只有一个实例。在计算机系统中类似于打印机和最常见的就是任务管理器的对话框,不管几个用户同时登录windows 打开的任务对话框只有一个。常见的几种实现方式:...
  • gwbbigbang
  • gwbbigbang
  • 2017-06-04 18:27:09
  • 473

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

认真做好每一件自己下定决心要做的事。
  • dmk877
  • dmk877
  • 2015-12-16 16:15:05
  • 7914

单例设计模式的作用及用途

单例类的作用:让一个类只能创建一个实例(因为频繁的创建对象,回收对象会造成系统性能下降。)。解决对象的唯一性,保证了内存中一个对象是唯一的 。 使用单例类条件:当前对象的创建比较消耗资源,我们在...
  • mearer
  • mearer
  • 2013-12-02 21:23:08
  • 1239

java设计模式之单例模式(几种写法及比较)

概念:   java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。   单例模式有以下特点:   1、单例类只能有一个实例。  ...
  • tolcf
  • tolcf
  • 2015-10-21 22:56:49
  • 6787

Java 单例模式的 6 种写法

Java 单例模式写法有很多种,不管它的写法怎么变化,都离不开这三步: 1. 私有的静态变量 2. 私有的构造方法 3. 公有的静态的获取实例的方法1、懒汉式,线程不安全public class...
  • Jason_M_Ho
  • Jason_M_Ho
  • 2018-03-25 10:23:31
  • 61
收藏助手
不良信息举报
您举报文章:Java设计模式_单例设计模式
举报原因:
原因补充:

(最多只允许输入30个字)