Java单例模式

单例模式是指确保一个类在任何情况下只有一个绝对实例,并提供一个全局访问点。单例模式是创建型模式。ServletContext,ServletContextConfig,ApplicationContext,数据库连接池等都是单列模式。

1.声明静态私有类变量,且立即实例化;2.私有构造方法;3.提供全局访问点;

饿汉式单例:

在类加载的时候就进行初始化,并创建单例对象,因为在线程还没出现以前就实例化了,是线程安全的。但是因为所有对象类加载的时候就实例化,如果系统存在大量的单利对象,那么会导致大量的内存浪费。

懒汉式单列:

解决饿汉式单利带来的内存浪费问题,单利对象在被使用的时候才会初始化。但是会造成线程安全问题,在全局访问点getInstance()方法上加上synchronized关键字,是这个方法变成线程同步方法即可解决。

但是在大批量的线程访问的时候会造成线程阻塞,导致程序性能下降。解决方法在方法内部双重判断私有变量是否为空,在加锁。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 主要参考自 菜鸟教程 单例模式是JAVA中最简单的模式之一,这种模式属于创建型模式,它提供了一种创建对象的最...
    东溪95阅读 566评论 0 2
  • 目录一.什么是单例?二.有几种?三.应用场景四.注意的地方 一.什么是单例? 单例模式 保证一个类在内存中只有一个...
    在挖坑的猿阅读 874评论 0 0
  • 单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用...
    SpaceCat阅读 1,144评论 1 7
  • 首先什么是单例?就一条基本原则,单例对象的类只会被初始化一次。在 Java 中,我们可以说在 JVM 中只存在该类...
    woshishui1243阅读 190评论 0 0
  • 简介 单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。优点:系统内存中该类只存在一个对...
    Wumpus阅读 342评论 0 2