`
zjit
  • 浏览: 13027 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java单例模式的多种实现~~~

    博客分类:
  • Java
阅读更多
//单例实现(1)
class Singleton1 {
	private static Singleton1 instance;
	private Singleton1(){
	}
	public static Singleton1 getInstance(){
		if(null == instance){
			instance = new Singleton1();
		}
		return instance;
	}
}
/*----------------------------------------------------
 * 以上单态模式是不安全的,为什么这么说呢? 首先没有考虑多线程
 * 例如:
 * Thread1 调用了getInstance()方法,并且判断instance是null
 * 然后进入 if 模块 
------------------------------------------------------*/


//单例实现(2)
class Singleton2{
	private static Singleton2 instance;
	private Singleton2(){}
	public synchronized static Singleton2 getInstance(){
		if(null == instance){
			instance = new Singleton2();
		}
		return instance;
	}
}


//单例实现(3)
class Singleton3{
	private static Singleton3 instance;
	private Singleton3(){}
	public static Singleton3 getInstance(){
		if(null == instance){
			synchronized (Singleton3.class) {
				if(null == instance){
					instance = new Singleton3();
				}
			}
		}
		return instance;
	}
}

//单例实现(4)
class Singleton4{
	private static volatile Singleton4 instance = new Singleton4();
	private Singleton4(){}
	public static Singleton4 getInstance(){
		return instance;
	}
}

//单例实现(5)
class Singleton5{
	static class SingletonHolder{
		static volatile Singleton5 instance = new Singleton5();
	}
	private Singleton5(){}
	public static Singleton5 getInstance(){
		return SingletonHolder.instance;
	}
}
分享到:
评论

相关推荐

    单例模式详解~~单例模式详解~~

    在Java中,实现单例模式有多种方式,但最常见的问题是线程安全问题。例如,上述代码展示了一个简单的单例实现,称为"饿汉式"单例,因为无论是否需要,它都会在类加载时立即创建实例。这种方式虽然简单,但在多线程...

    java单例模式实例

    在Java中,有多种实现单例模式的方法,每种都有其特点和适用场景。接下来,我们将深入探讨这些实现方式。 首先,我们来看**懒汉式(Lazy Initialization)**。这种实现方式是在类被首次请求时才创建单例对象,延迟...

    Java实现多种单例模式

    以下是Java实现的六种单例模式的详细解释: 1. 懒汉式(Lazy Initialization): 这种方式延迟了单例对象的初始化,直到第一次被请求时。例如,`SingleInstance1.java`可能就实现了这种方式。代码通常包含一个私有...

    单例模式各种实现及分享

    java单例模式的多种实现方法及优劣区分,以及如何摧毁单例模式。能够让大家认识到单例的多种多样

    Java 单例模式 工具类

    本篇文章将深入探讨如何在Java中实现单例模式,以及如何创建一个工具类来封装单例的创建。 首先,让我们了解单例模式的几种常见实现方式: 1. 饿汉式(静态常量): 这是最简单的单例实现,它在类加载时就完成了...

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

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

    单例模式Java实现

    在Java中,我们可以使用多种方式来实现单例模式: 1. **饿汉式(静态常量)**:这是最简单的单例实现方式,它在类加载时就完成了初始化,所以类加载比较慢,但获取对象的速度快,且线程安全。 ```java public class...

    单例模式各种实现方式

    在Java中,实现单例模式有多种方法,每种都有其特定的优缺点和适用场景。以下是几种常见的单例模式实现方式: 1. **饿汉式(静态常量)**: 这是最简单的实现方式,它在类加载时就完成了初始化,因此是线程安全的...

    Java单例模式设计

    总结起来,Java单例模式有多种实现方式,每种都有其适用场景。饿汉单例适用于对性能敏感且对延迟初始化无要求的情况;懒汉单例则适合那些需要延迟初始化且对线程安全有要求的场景;而考虑到序列化和反序列化的影响,...

    详解JAVA单例模式及多种实现.doc

    以下是几种常见的Java单例模式实现方式: 1. **饿汉式(静态常量)**: 这种方式在类加载时即初始化实例,线程安全,但可能导致不必要的内存占用。 ```java public class Singleton1 { private Singleton1() {} ...

    java单例模式的例子

    下面我们将深入探讨Java单例模式的概念、实现方式以及其优缺点。 **单例模式的概念** 单例模式的核心思想是限制类的实例化,只允许创建一个对象,同时提供一个全局访问点,使得这个唯一的实例可以被任何需要的地方...

    Java单例模式实现静态内部类方法示例

    "Java单例模式实现静态内部类方法示例" Java单例模式是软件设计模式中最基本和最常见的一种设计模式,也是最容易理解的一种设计模式。它的主要思想是确保某个类只有一个实例,并且提供一个全局访问点来访问该实例。...

    java设计模式之单例模式.zip

    在Java中实现单例模式有多种方法: 1. **饿汉式(静态常量)**:在类加载时就完成了初始化,所以没有线程安全问题,但这种实现方式无法实现延迟加载。 ```java public class Singleton { private static final ...

    Java单例模式.pdf

    Java单例模式是设计模式中的一种,在软件开发中扮演着重要的角色。单例模式的目的是保证一个类仅有一个实例,并且提供一个全局访问点。在Java中实现单例模式有多种方法,主要包括懒汉式、饿汉式、注册式(使用容器)...

    深入探索Java中的单例模式:实现、应用与最佳实践

    在Java中实现单例模式有多种方法,每种方法都有其特点和适用场景。本文将详细介绍几种常见的单例模式实现方式,并探讨它们在实际开发中的应用和最佳实践。 在实现单例模式时,应注意以下几点: 确保单例类不被继承...

    java中的单例模式

    在Java中,单例模式有多种实现方式,主要分为两类:饿汉式(Eager Initialization)和懒汉式(Lazy Initialization)。 1. **饿汉式**: - 饿汉式是在类加载时就完成了初始化,所以类加载比较慢,但获取实例的速度...

Global site tag (gtag.js) - Google Analytics