`
catmimigo
  • 浏览: 8536 次
  • 性别: Icon_minigender_1
  • 来自: 天津
最近访客 更多访客>>
社区版块
存档分类
最新评论

Singleton 单列模式的java实现(转)

阅读更多
Singleton 单列模式在实际应用的机会很多。

最近刚好碰到,所以顺便总结了下。

一、最常见的实现如下:(不支持多线程)

public class Singleton

{

private static Singleton singleton=null;

private Singleton(){}

public static Singleton instance()

{

if(singleton==null)

singleton = new Singleton();

return singleton

return singleton;

}

}



二、如果要在多线程环境下使用,那么可以用:

public class Singleton

{

private volatile static Singleton singleton=null;

private Singleton(){}

public static Singleton getInstance()

{

if(singleton==null)

{

synchronized(Singleton.class)

{

if(singleton==null)

{

singleton=new Singleton();

}

}

}

return singleton;

}

}



该实现,有另外实现方式:


public class Singleton

{

private static Singleton singleton = new Singleton();

private Singleton();

public static Singleton getInstance()

{

return singleton;

}

}


三、The solution of Bill Pugh,直接拷贝来的。

public class Singleton {
// Private constructor prevents instantiation from other classes
private Singleton() {}

/**
* SingletonHolder is loaded on the first execution of Singleton.getInstance()
* or the first access to SingletonHolder.INSTANCE, not before.
*/
private static class SingletonHolder {
private static final Singleton INSTANCE = new Singleton();
}

public static Singleton getInstance() {
return SingletonHolder.INSTANCE;
}
}



建议大家使用第三种。

分享到:
评论

相关推荐

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

    下面我们将深入探讨单例模式的几种实现方式。 ### 1. 饿汉式(静态常量) 饿汉式单例在类加载时就完成了初始化,因此是线程安全的。代码如下: ```java public class Singleton { private static final ...

    设计模式--单例模式java例子

    在Java中实现单例模式有多种方法,包括懒汉式、饿汉式、双重检查锁定(DCL)、静态内部类以及枚举类型等。每种方式都有其优缺点,适用场景也不同。 1. **懒汉式**:延迟初始化,只有在第一次调用getInstance()方法...

    单列模式用例

    在Java编程语言中,单列模式的实现有多种方式,包括懒汉式、饿汉式、双重检查锁定(DCL)、静态内部类以及枚举类型等。下面我们将详细探讨这些实现方式及其优缺点。 1. 懒汉式:延迟初始化,只有在第一次调用时才...

    设计模式之单例模式

    在Java中,单例模式有多种实现策略: 1. **饿汉式(静态常量)**:这是最简单的单例实现方式,它在类加载时就完成了实例化,避免了线程同步问题。代码如下: ```java public class Singleton { private static ...

    使用单例模式创建学生管理系统(饿汉式、懒汉式)

    以下是饿汉式单例模式的Java代码实现: ```java public class Singleton { // 饿汉式:静态常量实例化 private static final Singleton instance = new Singleton(); private Singleton() {} public static ...

    单列模式详解

    下面我们将深入探讨单例模式的几种实现方式:懒汉式、饿汉式以及枚举式。 ### 懒汉式(Lazy Singleton) 懒汉式是一种延迟初始化的单例模式实现。在程序启动时并不会立即创建实例,而是在第一次调用`getInstance()...

    单例模式演示PPT和实例

    在Java语言中,实现单例模式主要有三种方式: 1. **饿汉式**(Eager Initialization):这是最简单的实现方式,类加载时就创建了单例实例。这样保证了线程安全,但可能会造成资源浪费,因为无论是否使用,都会在类...

    单例模式详解

    下面对单例模式的特点、实现方式和应用场景进行详细介绍。 单例模式的特点 1. 单例类只能有一个实例。 2. 单例类必须自己自己创建自己的唯一实例。 3. 单例类必须给所有其他对象提供这一实例。 饿汉式单例 饿汉...

    Kotlin中单例模式和Java的对比浅析

    Kotlin 中单例模式和 Java 中单例模式的实现方式有所不同,但都是为了实现单例模式的目的。Kotlin 中的单例模式实现方式更加简洁和优雅,使用 object 声明和 lazy 函数可以实现懒加载和线程同步单例。

    单例模式.txt

    实现单例模式有多种方法,其中最常见的一种是饿汉式和懒汉式。 1. **饿汉式**:在类加载时就完成了实例化,避免了线程同步的问题,但缺点是在类初始化时就完成了实例化,可能会造成资源浪费。 ```java public ...

    黑马程序员入学Java知识(精华总结)

    构造方法的私有化、Singleton模式(包括饿汉式和懒汉式)、final关键字、抽象类及其体现如模板模式,以及接口、匿名内部类和枚举类等都是面向对象编程的重要概念。 异常是程序运行时发生的不正常情况,Java通过try...

    Java程序员面试题集

    32. **Singleton模式**:Singleton是一种设计模式,保证一个类只有一个实例,并提供全局访问点。 以上是Java面试中常见的知识点,深入理解和掌握这些概念对于成为一名合格的Java程序员至关重要。

    JAVA程序员面试三十二问

    32. **Singleton模式实现** 单例模式是一种设计模式,确保类只有一个实例且提供全局访问点。常见的实现方式包括懒汉式、饿汉式、双重检查锁定等。 这些面试问题涵盖了Java的基础语法、面向对象特性、集合框架、...

    JAVA变态面试~~

    32. **Singleton模式**:Singleton确保一个类只有一个实例,通常使用私有构造器和静态工厂方法实现。 以上就是Java面试中涉及的一些重要知识点,掌握这些能够帮助程序员更好地理解和使用Java语言。

    JAVA程序员面试32问.doc

    32. **Singleton设计模式** - 单例模式确保一个类只有一个实例,通常使用双重检查锁定(Double-Checked Locking)或静态内部类方式实现。 这些面试问题覆盖了Java的基础语法、面向对象、集合框架、并发编程等多个...

    JAVA程序员面试32问,你能回答多少题

    32. **编写Singleton模式** - 单例模式确保一个类只有一个实例,并提供全局访问点。一种常见的实现方式是“饿汉式”单例,使用静态常量字段存储唯一实例,确保线程安全: ```java public class Singleton { ...

    Java 面试中的陷阱

    32. **Singleton**:单例模式确保一个类只有一个实例,常见的实现方式有饿汉式、懒汉式、双重检查锁定等。 以上就是Java面试中的一些陷阱问题及其详细解答,涵盖了基本语法、面向对象、集合框架、多线程、异常处理...

    java程序员面试32问,面试时必须知道的问题

    - Singleton模式确保一个类只有一个实例,并提供全局访问点。实现方式包括饿汉式、懒汉式(线程安全)等。 以上是Java程序员面试中常见的问题和解答,理解这些知识点对于面试和实际开发都非常关键。

Global site tag (gtag.js) - Google Analytics