单例模式
Posted sunmin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例模式相关的知识,希望对你有一定的参考价值。
对象的创建时一个非常耗费资源的一件事,如果频繁的创建状态没有改变的对象是一件没有意义的事情。那么,我们可以提供一个给予对象的窗口,而不再允许使用者自由的创建实例对象,这种设计模式就是单例模式。
根据这个对象是在什么时候创建分为懒加载和非懒加载。懒加载就是在使用者明确要对象的时候才创建对象,非懒加载是类一加载就马上创建好对象等着用户老爷要。
Spring中bean默认就是单例模式,Scope属性没有显示声明为protoType,那么这个bean就是单例的,每次使用时取得的都是同一个bean。
懒加载的单例模式还涉及到并发时如何保证单例。就是如果有多个线程同时都要一个相同的对象,一看都没有,那么就先创建一个吧,如果不加控制的话,此时会创建多个对象,这也就违背了单例模式的初衷了。
package title02; public class Singleton { private static Singleton instance = null; // 私有的构造器,类以外无法构造实例 private Singleton() { } public Singleton getInstance() { // 双重检查加锁 if (instance == null) { synchronized(Singleton.class) { if (instance == null) { instance = new Singleton(); } } } return instance; } }
===========================================================================================================================================
本文只是我现阶段的学习心得总结而成,内容可能不够深入,由于水平所限,不保证所有内容正确,欢迎有同学在评论中指正,万分感谢!
保证每一个字的原创性!
作为一个程序员,我所能做的就是每一天都在进步,面对技术保持一颗赤子之心,这是我人生现阶段全部的追求。"Stay hungry, stay foolish"!
============================================================================================================================
以上是关于单例模式的主要内容,如果未能解决你的问题,请参考以下文章