单例模式主要用于:有一些对象我们只需要一个,比如:线程池、缓存、对话框、处理偏好设置、注册表对象、日志对象以及配置文件对象、数据库连接对象等等。单例模式常用于管理共享资源,例如:数据库连接或者线程池。

Java Singleton模式就为我们提供了这样实现的可能。使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利Java垃圾回收(garbagecollection)。

这些对象只能有一个实例,如果制造出多个实例,就会导致很多问题如:程序异常、资源使用过量等。

单例模式很像静态类,它自身有一个全局访问点但是又没有全局变量的缺点:如果将一个对象赋值给一个全局变量,那么你必须在程序一开始的时候就得创建好对象,如果执行过程中没有用到,就会非常耗费资源。

单例模式主要有三个部分:

1.私有构造方法:防止外部实例化,只有内部可以实例化

2.有一全局静态方法:

(1).可以访问私有的构造方法进行实例化。

(2).外部调用静态方法,如果存在singleton实例就返回,如果不存在则创建一个实例.自己进行对实例进行管理.

3.静态变量:利用一个静态变量来记录Singleton的唯一实例。

单例模式的UML非常简单,但是真正用好单例模式,也是有点难度的

单例模式的源代码如下:

publicclassSingleton{

//利用一个静态变量来记录Singleton类的唯一实例

privatestaticSingleton uiqueInstance;

//把构造函数声明为私有的,外部不可以实例化,只有内部可以实例化

privateSingleton(){

}

//外部通过调用静态方法getInstance(),来获得实例化对象

publicstaticSingleton getInstance(){

//内部自己管理实例,始终保证只有一个实例

if(uniqueInstance ==null) {

//如果没有实例,则创建实例,在类的内部可以访问构造函数,进而实例化

uniqueInstance =newSingleton();

}

//如果已经存在就直接将实例返回就行了

returnuniqueInstance;

}

}

java单例注册表_Java单例模式(Singleton)相关推荐

  1. java单例注册表_Spring对单例的底层实现,单例注册表

    public abstract class AbstractBeanFactory implementsConfigurableBeanFactory{/*** 充当了Bean实例的缓存,实现方式和单 ...

  2. java单例设计模式双重_Java 设计模式 ——单例模式(饿汉,懒汉,双重锁,静态内部类)...

    设计模式: 是在大量的实践中总结和理论化之后优选的代码结构,编程风格,以及解决问题的思考方式.设计模式免去我们自己再思考和摸索.就像是经典的棋谱,不同的棋局,我们用不同的棋谱 俗称"套路&q ...

  3. java 单例 生命周期_单例模式--- 声明周期托管方式

    声明周期托管方式,IOC JAVA代码 MyManager.java import java.util.HashMap; /** * 为了管理对象的产生 * 对象的控制权给当前类负责 * 生命周期托管 ...

  4. java单例设计模式懒汉_Java设计模式之单例设计模式(懒汉、饿汉)

    [toc] Java设计模式之单例设计模式(懒汉.饿汉) 相信面试过的初中级Java开发的朋友可能都有遇到过单例设计模式的笔试题吧,如果之前没有背下来或者不理解,可以看看下面这篇文章,应该足够应付笔试 ...

  5. java 运行环境注册表_Java运行环境与Windows注册表

    有两种Java运行环境(JRE),公有JRE (public JRE)与私有JRE(private JRE).JDK安装程序会安装私有JRE和一个可选的公有JRE.私有JRE完全包含在JDK的安装路径 ...

  6. java web登陆注册表_Java 访问注册表 - Rayn——做今天最好的自己 - OSCHINA - 中文开源技术交流社区...

    import java.util.prefs.*;public class Registery {String[] keys = {"version", "initial ...

  7. filter java 是单例的吗_JAVA 设计模式之 单例模式详解

    单例模式:(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点.单例模式是创建型模式.单例模式在现实生活中应用也非常广泛. 在 J2EE 标准中,S ...

  8. java单例设计模式_Java设计模式之单例模式详解

    在Java开发过程中,很多场景下都会碰到或要用到单例模式,在设计模式里也是经常作为指导学习的热门模式之一,相信每位开发同事都用到过.我们总是沿着前辈的足迹去做设定好的思路,往往没去探究为何这么做,所以 ...

  9. java单例代码_java中的单例模式的代码怎么写

    单例模式在我们日常的项目中十分常见,当我们在项目中需要一个这样的一个对象,这个对象在内存中只能有一个实例,这时我们就需要用到单例. 一般说来,单例模式通常有以下几种: 1.饥汉式单例 public c ...

最新文章

  1. 联想 重装系统后F5 F6键无法使用
  2. 简单描述DDL、DCL、DML
  3. 从蚂蚁金服一窥人工智能在金融领域的机遇与挑战
  4. tcpdump抓包命令_tcpdump实战
  5. px,em,rem,vw单位在网页和移动端的应用
  6. ios 内存管理的理解(三)ARC下 对象内存管理
  7. 基于Swoole和beanstalkd实现多进程处理消息队列。
  8. Keras学习---MLP和CNN模型建立篇
  9. SQLHelp sql数据库的DAL
  10. 【Shiro第七篇】SpringBoot + Shiro实现会话管理
  11. 统信UOS使用wine安装“方正ApabiReader_4.5.2.1790(ceb阅读器)”并解决安装过程中文显示成方块问题
  12. Xshell上传文件到Centos服务器
  13. NLTK加载自定义词典
  14. linux skb_buf大小,linux网络 skb_buff
  15. 计算机的硬盘类型及特点是,电脑硬盘中的蓝盘、黑盘、红盘、绿盘有什么区别?特点?...
  16. python的皮卡丘如何写代码,用python画皮卡丘的代码
  17. Vue的MVVM(model、view、viewmodel)
  18. java md5加密 jar包_BeanShell调用自己写的jar包进行MD5加密
  19. git第一次提交代码到远程仓库
  20. 2022届秋招,从被拒到上岸 | 谈谈YK菌在2021年的经历与收获

热门文章

  1. volatile关键字的作用
  2. java ee的小程序_扩展Java EE应用程序的基础
  3. java8默认垃圾收集器_Java 8中最快的垃圾收集器是什么?
  4. hibernate查询缓存_Hibernate查询缓存如何工作
  5. nodemanager_如何使用NodeManager来控制WebLogic Server
  6. junit:junit_处理JUnit中异常的另一种方法:catch-exception
  7. 创新设计模式:单例模式
  8. java8 javafx_Java 8的新增功能(第1部分– JavaFX)
  9. Java Optionals获得更具表现力的代码
  10. 背压加载文件– RxJava常见问题解答