注意三种单例模式的实现互相独立。因为偷懒把他们写在同一个类里了。
package HomeWork110306;
/**
* 单例模式:保证一个java的类只有一个实例
* 可以通过将构造方法声明成私有的,在类内部创建实例
* 对外提供一个公用方法来获取这个实例
* 饱汉模式:一般认为饱汉模式安全。每次申请一次内存,宁撑死不挨饿
* 饥汉模式:注意饥汉模式下的公用方法必须是线程同步的,原因????
* 其他模式:定义一个类,构造方法为private,所有方法为static的
* @author wybin
*/
public class Singleton {
/**1.饱汉模式
* 每次都要生成一次对象,所以饱了。这样总的类对象不是多个了吗?
* 是指每次调用这个类时都要new一次吗?可是内存不是只有一份吗?
*/
private Singleton(){//构造方法是私有的
}
//实例化代码放在静态代码块里可以提高程序执行效率,但可能更占空间
private final static Singleton instance = new Singleton();
//提供公用方法,用于获取类内部的类实例
public static Singleton getInstance(){
return instance;
}
/**2.饥汉模式,注意其getInstance方法是synchronized的
* 使用getInstance判断,当实例为空时才生成
* 不用每次生成对象,第一次使用生成实例
* 即刚开始类实例对象为null,还未申请内存。在getInstance里针对类实例进行判断
* 为空,即饥饿状态,需要创建后返回,否则直接返回
* @author wybin
*/
private Singleton(){
}
private static instance = null;//先声明一个类本身实例成员。初始化为空。先不申请内存
public static synchronized Singleton getInstance(){
if(instance == null) instance = new Singleton();
return instance;
}
/**3.其他模式(自己猜的)
* 构造方法为private
* 其他方法全部为static
*/
private Singleton(){
}
private static instance = null;
private static Singleton getInstance(){
if(instance == null) instance = new Singleton();
return instance;
}
}
分享到:
相关推荐
Java多线程编程环境中单例模式的实现
加速器中单带电粒子模拟库_C++_C_下载.zip
浅谈Java中单例设计模式之构造方法私有化.pdf
主要介绍了Java中单例模式详解,单例模式包括了懒汉式单例、饿汉式单例、登记式单例三种,想要了解的朋友可以了解一下。
一个简单的java工程,包含注释,一目了然,其中包含了单例模式的所有实现方式,懒汉式,饿汉式,双重校验,枚举,静态内部类等方式实现单例。
主要介绍了java 中单例模式饿汉式与懒汉式的对比的相关资料,这里对这两种单例模式进行对比,希望大家能理解并应用,需要的朋友可以参考下
c++中单例模式对象的释放控制,txt文件格式的,哈哈哈
主要介绍了Java中单例模式的7种写法,本文分别给出每种方式的实现代码,需要的朋友可以参考下
单例模式:简单的说,一个对象只负责一个特定的任务。 单例类: 1.构造函数需要标记为private,单例类不能再其他类中实例化,只能被其自身实例化 2.拥有一个保存类的实例静态成员变量 3.拥有一个访问这个实例的...
Java中单例(Singleton)模式是一种广泛使用的设计模式。单例模式的主要作用是保证在Java程序中,某个类只有一个实例存在...
主要介绍了深入解析Java的设计模式编程中单例模式的使用,一般来说将单例模式分为饿汉式单例和懒汉式单例,需要的朋友可以参考下
目前java中的单例模式有多种写法,kotlin中的写法更多一点,下面这篇文章主要给大家介绍了关于Kotlin中单例模式和Java对比的相关资料,会总结全部的到单例模式写法,需要的朋友可以参考下
本文主要介绍了PHP中单例模式与工厂模式的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧
详细介绍了java中单例设计模式各种方式,已经改进方案
今天小编就为大家分享一篇关于PHP中单例模式的使用场景与使用方法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
主要介绍了Python设计模式中单例模式的实现及在Tornado中的应用,讲解了单例模式用于设计Tornado框架中的线程控制方面的相关问题,需要的朋友可以参考下
主要介绍了C#中单例模式的三种写法示例,本文分别给出代码实例,需要的朋友可以参考下