`
sunbin
  • 浏览: 354237 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

单例4种创建方式

 
阅读更多


1: 从一个类的内部构造单例基本条件
       私有的无参构造函数
       私有的静态变量,声明了当前对象的引用
       通过静态方法取得单例

2:从类的内部构造单例的4种方式
public class UserService {
  private static final UserService userService = new UserService();

private UserService() {

}
//采取预加载的方式,userService在 classLoader 载入UserService.class

public static UserService getInstance(){
return userService;
}

//用了synchronized 多个线程排队的情况比较严重

public static synchronized UserService getInstance(){
if(userService==null){
userService = new UserService();
}
return userService;
}


// 可能会创建多个实例的情况
public static UserService getInstance() {
if (userService == null) {
synchronized (UserService.class) {
userService = new UserService();
}
}
return userService;
}

//通过双检查来判断,当前实例是否为空,第一次创建实例的时候可能会出现排队情况
// 创建完实例后,以后不会有排队的情况

// public static UserService getInstance() {
// if (userService == null) {
//    synchronized (UserService.class) {
//      if (userService == null) {
//        userService = new UserService();
//       }
//     }
// }
//    return userService;
//
// }
//}
分享到:
评论

相关推荐

    单例模式各种实现方式

    以下是几种常见的单例模式实现方式: 1. **饿汉式(静态常量)**: 这是最简单的实现方式,它在类加载时就完成了初始化,因此是线程安全的。 ```java public class Singleton { private static final Singleton...

    7种单例模式

    在多线程环境下,我们需要确保单例实例的创建只发生一次,以上几种方式除了懒汉式(线程不安全)外,都能保证线程安全。对于反序列化测试,由于默认反序列化会生成新实例,需要重写 `readResolve()` 方法来防止这种...

    Java设计模式之单例模式的七种写法

    Java设计模式之单例模式的七种写法 单例模式是一种常见的设计模式,它确保某个类只有一个实例,而且自行实例化并向整个系统提供这个...懒汉式单例是一种常见的单例模式实现方式,它有四种写法,每种写法都有其优缺。

    五种单例模式

    在Java、C#等面向对象语言中,实现单例模式有多种方法,下面我们将详细探讨五种常见的单例模式实现方式: 1. **饿汉式单例**: 这种方式是在类加载时就完成实例化,避免了线程同步问题。由于实例在类加载时已经...

    Java 单例模式 工具类

    首先,让我们了解单例模式的几种常见实现方式: 1. 饿汉式(静态常量): 这是最简单的单例实现,它在类加载时就完成了初始化,因此是线程安全的。 ```java public class Singleton { private static final ...

    单例模式的七种写法

    下面我们将详细探讨单例模式的七种常见实现方式。 1. **懒汉式(线程不安全)**: 这是最直观的实现方式,它延迟初始化单例,只有当第一次调用时才创建对象。但是,这种方式在多线程环境下存在安全隐患,因为多个...

    单例模式(Singleton)的6种实现

    单例模式的实现方式有多种,本文将介绍六种不同的实现方法。 首先,单例模式的实现通常具备以下特点: 1. 单例类(Singleton)拥有一个私有无参构造函数,防止其他对象通过new操作符创建类实例。 2. 单例类持有...

    几种单例模式demo

    单例模式的实现方式有很多种,下面我们将详细探讨几种常见的单例模式的实现方法: 1. 饿汉式(静态常量): 这种方式在类加载时就完成了初始化,因此是线程安全的。 ```java public class Singleton { private ...

    单例模式的几种实现方式

    下面将详细介绍单例模式的几种常见实现方式。 1. 饿汉式(静态常量) 饿汉式单例在类加载时就完成了初始化,因此线程安全。这种方式简单且效率高,但如果单例对象不被使用,会造成内存浪费。 ```java public class...

    游戏角色创建程序(单例模式)

    在这个场景中,我们讨论的是"游戏角色创建程序",并且使用了"单例模式"这一设计模式来实现。单例模式是软件设计模式中的一种,它确保一个类只有一个实例,并提供一个全局访问点。在Java编程语言中,单例模式常用于...

    c#单例3种实现

    这是最简单的单例实现方式,通过在类加载时就创建实例,确保线程安全。 ```csharp public sealed class Singleton { private static readonly Singleton instance = new Singleton(); private Singleton() { } ...

    43丨单例模式(下):如何设计实现一个集群环境下的分布式单例模式?1

    单例模式是一种设计模式,旨在确保一个类只有一个实例,并提供全局访问点。在单例模式中,类的构造函数是私有的,防止外部直接创建对象,而是通过静态方法获取该类的唯一实例。单例模式的唯一性通常是在进程范围内,...

    java单例设计模式 4中实现方式,重点介绍了静态内部类的实现方式

    Java单例设计模式是一种创建型设计模式,可以保证一个类只有一个实例,并提供全局访问点。单例模式在实际开发中经常使用,可以避免多个实例引起的资源浪费和同步问题。常见的Java实现方式有多种,以下详细介绍四种...

    c#设计模式之单例模式的实现方式

    在C#中,实现单例模式有多种方式,这里主要介绍四种:饿汉式、懒汉式、双重验证式和静态内部类。 1. **饿汉式**: 饿汉式在类加载时就创建了实例,因此在类装载时就完成了初始化,保证了线程安全。这种方式的优点...

    创建型模式之单例模式(Singleton Pattern)

    单例模式是软件设计模式中的一种,属于创建型模式,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式在很多场景下都非常有用,例如管理共享资源、配置对象或者缓存服务等。 单例模式的核心...

    单例模式的几种实现方式demo

    懒汉式单例在第一次调用 `getInstance` 方法时才创建实例,但这种方式不线程安全: ```java public class Singleton { private static Singleton INSTANCE; private Singleton() {} public static Singleton ...

    singleton单例最全实现方式代码.rar

    在Java编程语言中,"单例模式"是一种常用的软件设计模式,它确保一个类只有一个实例,并提供一个全局访问点。单例模式常用于控制资源的访问,如数据库连接池、线程池等。本压缩包提供了多种单例实现方式的Java代码...

    单例模式.ppt

    在ACCP V4.0的讲解中,提到了五种不同的单例模式实现方式: 1. **简单实现**: 这是最基础的实现方式,通过私有的构造函数防止外部直接实例化,然后通过静态的`getInstance()`方法返回唯一的实例。但是这种方式在...

Global site tag (gtag.js) - Google Analytics