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

浅谈java单例模式延迟加载

    博客分类:
  • java
阅读更多
                       浅谈java单例模式延迟加载

普通单例无法延迟加载,如:

public class Singleton
{
private Singleton()
{
System.out.println("Singleton is creating ....");
}

private static Singleton instance = new Singleton();

public static Singleton getInstance()
{
return instance;
}
}

于是我想到:

public class Singleton
{
private Singleton()
{
System.out.println("Singleton is creating ....");
}

private static Singleton instance = null;

public static synchronized Singleton getInstance()
{
if(null == instance)
{
instance = new Singleton();
}
return instance;
}
}


迭代开出几个线程去跑,测试性能,性能后者至少差上2个数量级,为实现延迟加载二引入的同步关键字反而降低了程序的性能,如何解决这个问题呢?



我们进行如下改进:

public class Singleton
{
private Singleton()
{
System.out.println("Singleton is creating ....");
}

private static class SingletonHolder
{
private static Singleton instance = new Singleton();
}

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

类Singleton加载时,其内部类并不会被初始化,只有在getInstance方法被调用时才会加载,这种方式既可以做到延迟加载,又不用使用同步关键字,一举两得....


2
5
分享到:
评论
1 楼 skill_job 2014-08-28  
请问如何保证instance实例的线程安全?

相关推荐

    浅谈Spring单例Bean与单例模式的区别

    "浅谈Spring单例Bean与单例模式的区别" 本文主要介绍了Spring单例Bean与单例模式的区别,通过对比两者的定义、实现机制和应用场景,帮助读者更好地理解这两种概念的异同。 一、单例模式的定义和实现 单例模式是一...

    深入浅出单例Singleton模式

    【深入浅出单例Singleton模式】 单例模式是一种在软件设计中常见的设计模式,它的核心目标是确保一个类只有一个实例,并提供一个全局访问点。在Java等面向对象编程语言中,单例模式常用于控制资源的共享,如全局...

    浅谈java单例设计模式

    单例模式 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。 如果我们要让类在一个虚拟机中只能产生一个对象: 将类的...

    Java中的五种实现方法【单例模式】

    在Java编程语言中,单例模式是一种常用的软件设计模式,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式在系统中需要频繁创建和销毁对象时,或者对象的创建过程比较昂贵时,特别有用。单例...

    深入浅出java设计模式(高清中文PDF)

    《深入浅出Java设计模式》是一本专注于Java编程领域中的设计模式专著,旨在帮助开发者深化对设计模式的理解,提高代码质量和可维护性。设计模式是软件开发中经过时间检验的解决方案,它们是解决常见问题的最佳实践。...

    浅议单例模式之线程安全(转)

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

    浅谈C#单例模式的实现和性能对比

    单例的实现方式有很多种,但从最简单的实现(非延迟加载,非线程安全,效率低下),到可延迟加载,线程安全,且高效的实现,它们都有一些基本的共同点: 单例类都只有一个private的无参构造函数 类声明为sealed

    浅谈Java中Mysql数据库的连接与操作.pdf

    连接MySQL数据库的步骤包括引入必要的java.sql包、加载JDBC驱动程序、创建数据库连接(Connection),以及创建数据库连接后进行操作。在Java代码中,这一过程大致如下: 1. 导入java.sql包; ```java import java....

    《浅谈Java设计模式之原理简述》.pdf

    《浅谈Java设计模式之原理简述》

    浅谈Java优势

    浅谈Java优势,关于java优势......

    浅谈JAVASE单例设计模式

    在Java中,单例模式的应用广泛,尤其是在处理系统级服务、配置信息、线程池等需要全局共享的对象时。下面我们将深入探讨单例设计模式的实现方式和注意事项。 1. **饿汉式单例** 饿汉式单例在类加载时就完成了实例...

    深入浅出设计模式之单件模式

    ### 深入浅出设计模式之单件模式 #### 一、单件模式概述 单件模式(Singleton Pattern)是软件设计模式中最为常见的一种,它的主要目标是确保某个类只有一个实例,并提供一个全局访问点。单件模式在很多情况下都...

    浅谈Java编程中的单例设计模式

    在Java编程中,单例设计模式是一种常见的设计模式,它确保一个类只有一个实例,并提供一个全局访问点。这种模式在需要频繁创建和销毁对象,或者对象创建代价较大,且需要全局共享资源时非常有用。在日志工具类的场景...

    Java设计模式教程

    该资料介绍Java各类开发模式,包含以下教程:《深入浅出设计模式(中文版)》《Java单例模式》《Java设计模式-图解-附代码》《JAVA设计模式之单例模式(完整版)》《Java学习笔记(必看经典)》《Java总复习》《单例模式》...

    浅谈Java中单例设计模式之构造方法私有化.pdf

    "浅谈Java中单例设计模式之构造方法私有化" 单例设计模式是 Java 中一种常用的设计模式,核心思想是将类的构造方法私有化,以控制实例化对象的产生。这种模式可以确保在程序中只有一个实例化对象存在,这对控制对象...

    从追MM浅谈Java的23种设计模式

    Java的23种设计模式是软件工程中的一种经典思想,它们是解决常见编程问题的成熟解决方案,被广泛应用于各种项目中。设计模式并不是特定的代码或库,而是对在特定情境下,如何组织代码和交互的一种描述。这些模式是...

    C#单例模式视频讲解

    《C#面向对象设计模式纵横谈(2):Singleton 单件(创建型模式)》这个视频教程很可能深入浅出地介绍了单例模式的概念、实现方式以及在实际项目中的应用案例,对于学习和掌握单例模式是很好的参考资料。通过观看和实践...

Global site tag (gtag.js) - Google Analytics