`
Buddha2008
  • 浏览: 5339 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java单例模式浅谈

    博客分类:
  • Java
阅读更多
    设计模式这块一直是自己薄弱之处,常用的无非是单例模式和简单工厂模式。前不久去面试,当被问到为什么要用单例模式时,却用了单例模式的优点来做答,结果可想而知,后面又重新看了下单例模式,又加深了其了解,这里记下以共享。
    之所以用单例模式,主要是由于某些特殊场景只能存在一个实例,例如一些计数,或如一些排号等。单例模式的优点是内存占用相对少,因为系统只存在一个实例。
    我们一般会像以下这样写出单例模式:
   
public class Singleton {
    private static Singleton instance = null;

    private Singleton() {}

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

   
    后在网上看到说是这种写法当在多线程并发的情况下,就有可能会创建出多个实例,解决办法有多种,一种是在声明实例时进行初始化,一种是对获取实例方法加上synchronized:
   
public class Singleton {
        // 方法一
    private static Singleton instance = new Singleton();
    private Singleton() {}

        // 方法二
    public synchronized static Singleton getInstance() {
        return instance;
    }
}
    

    初始化instance,由于前面有了static关键字,保存了这一行代码只会执行一次,下面的获取实例getInstance方法加了同步关键字synchronized解决了并发问题。
分享到:
评论

相关推荐

    java单例模式实例

    一个简单的java工程,包含注释,一目了然,其中包含了单例模式的所有实现方式,懒汉式,饿汉式,双重校验,枚举,静态内部类等方式实现单例。

    Java 单例模式 懒汉模式

    Java 单例模式 懒汉模式 //懒汉式 多线程中不可以保证是一个对象

    Java 单例模式.pptx

    作为对象的创建模式, 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 PPT详细了单例模式的实现和使用场景

    Java SE程序 单例模式

    Java SE程序 单例模式Java SE程序 单例模式Java SE程序 单例模式Java SE程序 单例模式Java SE程序 单例模式Java SE程序 单例模式Java SE程序 单例模式Java SE程序 单例模式Java SE程序 单例模式Java SE程序 单例模式...

    Java单例模式的全面总结

    Java单例模式,其中:单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种

    java单例模式的例子

    java单例模式的例子java单例模式的例子java单例模式的例子

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

    详细讲解了Java单例模式的几种实现方式,并有详细的示例配合讲解.

    深入Java单例模式浅析

    Java设计模式-单例模式(懒汉和恶汉)

    Java 单例模式 工具类

    源码 博文链接:https://tianlihu.iteye.com/blog/747737

    Java单例模式设计

    代码中演示了Java设计模式中的单例模式,其中包括饿汉单例模式,懒汉单例模式以及序列化饭序列化单例模式。在实际的开发中,可以直接借鉴使用。

    java Singleton单例模式

    java Singleton单例模式 java Singleton单例模式

    java 获取 配置文件 属性 单例模式 高效加载

    通过单例模式实例化获取propertyUtil 工具包实例,高效加载配置文件,java语言编写。通过单例模式实例化获取propertyUtil 工具包实例,高效加载配置文件,java语言编写。通过单例模式实例化获取propertyUtil 工具包...

    Java单例模式(DOC)

    Java单例模式Java单例模式Java单例模式Java单例模式

    实用Java的单例模式,实用于Java学习者

    实用Java的单例模式,实用于Java学习者 单例模式 单例模式

    java单例模式

    java单例模式开发的7中写法,网上搜索的,可以看看

    Java设计模式之单例模式

    目录 单例模式的概念 单例模式的要点 单例模式类图 单例模式归类 单例模式的应用场景 单例模式解决的问题 单例模式的实现方式 单例模式实现方式对比 单例模式的概念 单例模式,顾名思义就是只有一个实例,并且由它...

    单例模式java代码

    编写一个类LimitInstanceClass,该类最多可以实例化指定个数实例。实例的个数用配置文件InstanceLimit.cfg指定。例如,如果InstanceLimit.cfg的内容为2,则LimitInstanceClass最多可以同时存在2个对象。...

    java单例模式连接数据库源码

    java单例模式连接数据库源码.可以直接引用只需加入相应的mysql 或 oracle的驱动,修改源码的连接地址用户名及密码。

    java中的单例模式

    java 单例模式

Global site tag (gtag.js) - Google Analytics