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;
}
}
建议大家使用第三种。
分享到:
相关推荐
下面我们将深入探讨单例模式的几种实现方式。 ### 1. 饿汉式(静态常量) 饿汉式单例在类加载时就完成了初始化,因此是线程安全的。代码如下: ```java public class Singleton { private static final ...
在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()...
在Java语言中,实现单例模式主要有三种方式: 1. **饿汉式**(Eager Initialization):这是最简单的实现方式,类加载时就创建了单例实例。这样保证了线程安全,但可能会造成资源浪费,因为无论是否使用,都会在类...
下面对单例模式的特点、实现方式和应用场景进行详细介绍。 单例模式的特点 1. 单例类只能有一个实例。 2. 单例类必须自己自己创建自己的唯一实例。 3. 单例类必须给所有其他对象提供这一实例。 饿汉式单例 饿汉...
Kotlin 中单例模式和 Java 中单例模式的实现方式有所不同,但都是为了实现单例模式的目的。Kotlin 中的单例模式实现方式更加简洁和优雅,使用 object 声明和 lazy 函数可以实现懒加载和线程同步单例。
实现单例模式有多种方法,其中最常见的一种是饿汉式和懒汉式。 1. **饿汉式**:在类加载时就完成了实例化,避免了线程同步的问题,但缺点是在类初始化时就完成了实例化,可能会造成资源浪费。 ```java public ...
构造方法的私有化、Singleton模式(包括饿汉式和懒汉式)、final关键字、抽象类及其体现如模板模式,以及接口、匿名内部类和枚举类等都是面向对象编程的重要概念。 异常是程序运行时发生的不正常情况,Java通过try...
32. **Singleton模式**:Singleton是一种设计模式,保证一个类只有一个实例,并提供全局访问点。 以上是Java面试中常见的知识点,深入理解和掌握这些概念对于成为一名合格的Java程序员至关重要。
32. **Singleton模式实现** 单例模式是一种设计模式,确保类只有一个实例且提供全局访问点。常见的实现方式包括懒汉式、饿汉式、双重检查锁定等。 这些面试问题涵盖了Java的基础语法、面向对象特性、集合框架、...
32. **Singleton模式**:Singleton确保一个类只有一个实例,通常使用私有构造器和静态工厂方法实现。 以上就是Java面试中涉及的一些重要知识点,掌握这些能够帮助程序员更好地理解和使用Java语言。
32. **Singleton设计模式** - 单例模式确保一个类只有一个实例,通常使用双重检查锁定(Double-Checked Locking)或静态内部类方式实现。 这些面试问题覆盖了Java的基础语法、面向对象、集合框架、并发编程等多个...
32. **编写Singleton模式** - 单例模式确保一个类只有一个实例,并提供全局访问点。一种常见的实现方式是“饿汉式”单例,使用静态常量字段存储唯一实例,确保线程安全: ```java public class Singleton { ...
32. **Singleton**:单例模式确保一个类只有一个实例,常见的实现方式有饿汉式、懒汉式、双重检查锁定等。 以上就是Java面试中的一些陷阱问题及其详细解答,涵盖了基本语法、面向对象、集合框架、多线程、异常处理...
- Singleton模式确保一个类只有一个实例,并提供全局访问点。实现方式包括饿汉式、懒汉式(线程安全)等。 以上是Java程序员面试中常见的问题和解答,理解这些知识点对于面试和实际开发都非常关键。