美文网首页
Java - Singleton(单例)

Java - Singleton(单例)

作者: aven_kang | 来源:发表于2022-06-11 20:19 被阅读0次
public class singleton {

    //2.声明本类类型的引用指向本类类型的对象
    private static singleton sin = new singleton();

    // 1.私有化构造方法,使用private关键字修饰
    private singleton() {


    }

    public static singleton getInstance() {

        return sin;

    }
    
    public static void main(String[] args) {

        singleton single = new singleton();
        singleton single2 = new singleton();




    }
}

如何使用这个单例

public class test {

    {
        System.out.print("构造块");
    }

    static {
        System.out.print("静态代码块");
    }

    test() {
        System.out.print("构造函数");
    }

    public static void main(String[] args) {
        
        singleton s1 = singleton.getInstance();
        singleton s2 = singleton.getInstance();

        if (s1 == s2) {
            System.out.print("yes"); // 最后代码走进了这里,说明两个类是同一个对象
        }

    }
    
}

饿汉模式

public class singleton {

    //2.声明本类类型的引用指向本类类型的对象
    private static singleton sin = new singleton();

    // 1.私有化构造方法,使用private关键字修饰
    private singleton() {


    }

    public static singleton getInstance() {

        return sin;

    }
    
    public static void main(String[] args) {

        singleton single = new singleton();
        singleton single2 = new singleton();




    }
}

饿汉模式:意思就是上来就创建对象

private static singleton sin = new singleton();

而懒汉模式呢,是需要的时候,再创建对象,代码如下

public class singleton {

    //2.声明本类类型的引用指向本类类型的对象
    // private static singleton sin = new singleton();
    private static singleton sin = null;

    // 1.私有化构造方法,使用private关键字修饰
    private singleton() {


    }

    public static singleton getInstance() {

        if (sin == null) {
            sin = new singleton();
        }
        return sin;

    }
    
    public static void main(String[] args) {

        singleton single = new singleton();
        singleton single2 = new singleton();

    }
}

这个就是懒汉模式,private static singleton sin = null; sin这个对象一开始并不会初始化,而是在调用方法的时候,才会创建第一个也唯一的一个对象,
在一般开发中,我们比较推荐使用饿汉模式,考虑到多线程访问的问题。

相关文章

  • 单例模式

    3、单例模式(Singleton) 单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象...

  • 设计模式-单例模式(Singleton)

    单例模式(Singleton) 单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保...

  • JAVA设计模式 - 单例模式

    JAVA设计模式 - 单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一...

  • 设计模式(二)——创建型模式

    一、 单例模式 1. 什么是单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模...

  • 单例模式(Singleton)

    单例模式(Singleton) 枚举单例 public enum Singleton { INSTANCE; ...

  • JAVA基础之单例

    JAVA单例的几种形式以及其优缺点。 Android 中的单例模式 - 简书 单例的定义:Singleton模式的...

  • Java - Singleton(单例)

    如何使用这个单例 饿汉模式 饿汉模式:意思就是上来就创建对象 而懒汉模式呢,是需要的时候,再创建对象,代码如下 这...

  • 4、创建型模式之单态模式

    单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一,也叫单态模式。这种类...

  • 设计模式——单例模式

    设计模式——单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一,这种类型...

  • 单例模式(Singleton Pattern)

    一、单例模式简介 1. 定义 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一,...

网友评论

      本文标题:Java - Singleton(单例)

      本文链接:https://www.haomeiwen.com/subject/mvabsrtx.html