`

单例模式三种方式

 
阅读更多
自:http://blog.sina.com.cn/s/blog_614cb62d0100ezam.html

1.多线程时性能低下
public class S1 {
private static S1 s;
private S1(){}
public static synchronized S1 getS(){
  if(s == null){
   s = new S1();
  }
  return s;
}
}

2.比较常用的,但容易产生垃圾对象

public class S2 {
private static S2 s = new S2();
private S2(){}
public static S2 getS(){
  return s;
}
}

3.双锁机制,安全且在多线程情况下能保持高性能

public class S3 {
private static S3 s;
private S3(){}
public static S3 getS(){
  if (s == null){
   synchronized(S3.class){
    if(s == null){
     s = new S3();
    }
   }
  }
  return s;
}
}

分享到:
评论

相关推荐

    三种工厂设计模式和两种单例模式

    在本文中,我们将深入探讨三种工厂设计模式——简单工厂模式、抽象工厂模式和工厂方法模式,以及两种单例模式——饿汉单例模式和懒汉单例模式。这些模式都是面向对象设计中的重要组成部分,对于理解和构建可维护、可...

    23钟设计模式之单例模式

    单例模式是一种常用的设计模式,它的核心思想是在整个应用程序中,一个类只能有一个实例存在。单例模式常用于控制资源的共享,例如数据库连接池、日志服务等。单例模式有多种实现方式,常见的包括懒汉式、饿汉式以及...

    JAVA单例模式的几种实现方法

    ### JAVA单例模式的几种实现方法 #### 一、饿汉式单例类 饿汉式单例类是在类初始化时就已经完成了实例化的操作。这种实现方式简单且线程安全,因为实例化过程是在编译期间完成的,不会受到多线程的影响。 **代码...

    单例模式线程安全的三种表达

    单例模式三种线程安全的表达方式,其中枚举方式的单例是最安全的

    单例模式详解

    单例模式分为三种:懒汉式单例、饿汉式单例、登记式单例。下面对单例模式的特点、实现方式和应用场景进行详细介绍。 单例模式的特点 1. 单例类只能有一个实例。 2. 单例类必须自己自己创建自己的唯一实例。 3. ...

    单例模式应用场景

    ### 单例模式应用场景 #### 一、概述 ...综上所述,虽然单例模式被认为是一种相对简单的实现技巧,但在实际开发中却有着广泛的应用前景。合理地使用单例模式,可以显著提升软件系统的稳定性和性能。

    Java 单例模式.pptx

    单例模式的实现方式主要有三种:饿汉式、懒汉式以及静态内部类方式。 - **饿汉式** - **实现**: ```java public class Single1 { // 创建一个静态的实例 private static Single1 instance = new Single1(); ...

    单例模式的要点及模式

    ### 三、单例模式的应用场景与优缺点 **应用场景**: - 全局日志对象 - 数据库连接池 - 缓存服务 - 线程池 - 多线程环境下的线程同步控制 **优点**: - 节省内存空间,减少系统资源消耗。 - 避免对资源的多重占用...

    单例模式源代码

    在Java中实现单例模式主要有三种方式: 1. 饿汉式(静态常量): 这种实现方式是在类加载时就创建了单例对象,线程安全,且避免了同步开销。 ```java public class Singleton { private static final Singleton ...

    Java单例模式应用研究.pdf

    经典单例模式通常有两种实现方式:**饿汉式**和**懒汉式**。 ##### 1. 经典单例类实现 ```java public class UserService { // 私有的静态对象 private static UserService userService = null; // 私有的构造...

    几种单例模式说明(并有实例)

    本文介绍了三种常见的单例模式:懒汉式、饿汉式以及登记式,并提供了相应的Java代码示例。不同的应用场景下,可以根据实际需求选择合适的单例模式。例如,如果希望延迟加载,可以选择懒汉式;如果需要保证线程安全且...

    单例模式单例模式单例模式

    #### 三、单例模式的应用场景 单例模式的应用非常广泛,特别是在以下几种场景中: - **资源管理**:比如数据库连接池、线程池等,这些资源非常宝贵,重复创建不仅浪费资源,还可能引发性能问题。 - **配置信息管理...

    unity中涉及的三种单例模式

    下面将详细介绍在Unity中涉及的三种单例模式:C#经典单例、Unity内置单例以及一种线程安全的改进版单例。 1. C#经典单例: 这是最常见的单例实现方式,通常通过私有构造函数和一个静态方法来保证只有一个实例。在...

    简单工厂,代理模式,单例模式demo

    在Java中,实现单例模式有多种方式,如饿汉式、懒汉式、双重检查锁定等,每种方式都有其适用场景和优缺点。 结合"源码"标签,理解这些设计模式的最佳方式是通过阅读和分析实际的代码实现。例如,查看一个简单的工厂...

    设计模式-单例模式(讲解及其实现代码)

    实现单例模式有多种方式,下面详细介绍几种常见的实现方法: 1. **饿汉式(静态常量)**: 在类加载时就创建了单例对象,这种方式简单且线程安全,但由于类加载时就完成了初始化,所以即使没有使用,也会消耗内存...

    OC单例模式讲解

    #### 三、OC中实现单例模式的基本步骤 1. **声明单例类**:首先定义一个类,并且确保它有一个私有的构造函数,防止外部通过构造函数来创建新的实例。 2. **私有化构造函数**:为了保证单例模式的唯一性,需要将构造...

    关于单例模式的知识要点

    单例模式的常见实现方式有以下几种: 1. **饿汉式(Eager Initialization)**:在类加载时就完成了初始化,所以类加载比较慢,但获取实例的速度快,线程安全。这是通过静态常量或者静态初始化块来实现的。 ```java...

Global site tag (gtag.js) - Google Analytics