动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

java中单例模式详解

06-10 16:35 369浏览
举报 T字号
  • 大字
  • 中字
  • 小字

说到单例模式,大家一定想知道什么是单例模式,虽然在学习java的过程中,听到过单例模式,但是具体的内容却不知道。我们来简单打个比方,简单了解一下单例这个概念。在生活中,我们去超市买了一瓶矿泉水,喝完这瓶矿泉水,瓶子没有立马扔掉,而是拿回了家中,在我们第二次出去玩的时候,把瓶子装满水,继续喝水,这就是单例。我们在java开发过程中,经常会去连接数据库,那么在连接数据库的过程中,会用到数据库连接池。在这里,数据库连接池就是运用的单例模式,有且仅有一个连接池管理者,去管理多个连接池对象。接下来我们一起java中的单例模式详解

单例模式是一种创建型模式,因进程需要,有时候我们只需要某一个类同时保留一个对象,不希望有更多对象,这个时候我们需要考虑到单例模式的设计了。单例模式具有三个特点,分别是,单例模式只能有一个实例;单例类必须创建自己的唯一实例;单例类必须向其他对象提供这一实例。

Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,今天呢,咱们主要介绍一下饿汉式单例。

饿汉式单例是基于ClassLoder机制,使用static来定义静态成员变量或静态代码,让instance在类加载时就进行初始化,避免了同步问题,实现了线程安全,饿汉式单例的优势在于实现简单,劣势在于不是懒加载模式。同时,也存在两个问题,第一在需要实例之前就完成了初始化,在系统中单例场景较多的情况下,会造成内存的占用,加载速度慢的问题;第二由于在调用getInstance()之前就完成了初始化,如果需要给getInstance()函数传入参数,将无法实现。

public class Singleton {

private static final Singleton instance = new Singleton();

private Singleton() {

};

public static Singleton getInstance() {

return instance;

}

}

//static 静态代码块

public class Singleton {

private Singleton instance = null;

static {

instance = new Singleton();

}

private Singleton (){}

public static Singleton getInstance() {

return this.instance;

}

}

以上,就是今天为大家介绍的java中单例模式的学习,希望大家使用的愉快。

1人推荐
共同学习,写下你的评论
0条评论
满天星
程序员满天星

5篇文章贡献24378字

作者相关文章更多>

推荐相关文章更多>

Java数据结构

HelloWorld10-31 08:24

浅谈MySQL中SQL优化的常用方法

军哥08-12 23:29

五分钟读懂UML类图

江湖人称小李白12-10 10:41

MyBatis开发框架的四大核心

IT逐梦者08-17 21:43

一次搞定continue,break和return

HelloWorld11-06 11:19

发评论

举报

0/150

取消