java 核心学习笔记 单例类

Posted The_shy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 核心学习笔记 单例类相关的知识,希望对你有一定的参考价值。

如果一个类始终只能创建一个实例,那么这个类被称作单例类。

一些特殊的应用场景可能会用到,为了保证只能创建一个实例,需要将构造方法用private修饰,不允许在类之外的其它地方创建类的实例。

又要保证可以创建该类的实例,所以需要一个public方法来创建该类的实例,由于在创建之前并没有该类的对象存在,所以只能使用类来调用此方法,故用static修饰。

同时需要将该类创建得到的实例分配一个引用才能知道该实例是否存在与是否唯一,所以需要一个成员变量保存创建的对象,同时由于该对象由上述静态方法创建,则该成员变量也必须是成员变量,与静态方法一起在类装载时初始化。

所以代码应该这样写;

import com.sun.tools.xjc.reader.xmlschema.bindinfo.BIConversion;

public class SingletonTest {
    public static void main(String[] args){
        String str = new String();
        System.out.println();
        if(str == null){
            System.out.println("str == null");
        }
        else if(str.equals("")){
            System.out.println("str.equal(‘‘)");
        }
        else{
            System.out.println(str);
        }


        Singleton singleton = Singleton.getTheSingleton();
        Singleton singleton1 = Singleton.getTheSingleton();
        System.out.println(singleton == singleton1);
    }

}


class Singleton{
    private static  Singleton singleton;
    private Singleton(){};
    public static Singleton getTheSingleton(){
        //如果该静态对象还没初始化(对象的创建包含声明和初始化),就创建一个。
        if(singleton == null) singleton = new Singleton();
        return singleton;
    }
}

 

以上是关于java 核心学习笔记 单例类的主要内容,如果未能解决你的问题,请参考以下文章

《Java与模式》学习笔记——Multiton

Spring的单例模式底层实现学习笔记

《Java与模式》学习笔记——Singleton

《Java与模式》学习笔记——Singleton

《Java与模式》学习笔记——Singleton

Java设计模式学习01——单例模式(转)