欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java中饿汉与懒汉的故事(单例设计模式)

程序员文章站 2022-04-27 10:37:16
java中的单例设计模式关于设计模式,这其实是单独存在的东西,它不属于java,但是在java中使用较多,所以今天我就给大家介绍下单例设计模式中的饿汉和懒汉这俩朴素的打工人。首先我先说明下单例设计模式是啥(如果不想了解,可以直接划下去看饿汉和懒汉):类的单例设计模式就是采用一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例。(不懂也没关系,会用就好)一.饿汉式饿汉式:可以理解为饿的不行了,就提前把吃饭工具准备好(new对象),再进行“吃”的操作。用代码说话叭:在这里插入代码片二.懒...

java中的单例设计模式

关于设计模式,这其实是单独存在的东西,它不属于java,但是在java中使用较多,所以今天我就给大家介绍下单例设计模式中的饿汉和懒汉这俩朴素的打工人。
首先我先说明下单例设计模式是啥(如果不想了解,可以直接划下去看饿汉和懒汉):类的单例设计模式就是采用一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例。(不懂也没关系,会用就好)

一.饿汉式
饿汉式:可以理解为饿的不行了,就提前把吃饭工具准备好(new对象),再进行“吃”的操作。
用代码说话叭:

class Family{
    private int number;
    private String name;
    private Family(){
    }        //构造器私有化
    private static Family Instance=new Family();  
    //内部创建类的对象
    public static Family getInstance(){
        return Instance;
    }
    //提供公共的静态方法,且返回对象。
}
public class Test3 {
    public static void main(String[] args) {
        Family family1=Family.getInstance();
        Family family2=Family.getInstance();
    }
}

二.懒汉式
懒汉式:可以理解这人特懒,他只是洗下碗但是不准备,啥时候吃饭啥时候弄吃饭工具(new对象)。
用代码说话叭:

class lazy {
    private lazy(){
    }
    private static lazy Instance = null;
    //声明当前对象没有初始化值
    public static lazy getInstance(){
        if (Instance==null){
            Instance=new lazy();
            //需要再造对象,不要就不new对象了
        }
        return Instance;
    }
}
public class Test32 {
    public static void main(String[] args) {
       lazy lazy1=lazy.getInstance();
    }
}

三.饿汉和懒汉有啥不同
对于饿汉式:
优点:线程贼安全
缺点:对象加载时间过长
对于懒汉式:
优点:延迟对象的创建,更快
缺点:多线程安全贼低,但是可以通过优化使其可用。

本文地址:https://blog.csdn.net/qq_51694024/article/details/111601411