栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2.单例设计模式(饿汉式和懒汉式)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2.单例设计模式(饿汉式和懒汉式)

某个类只能提供一个获取其对象的方法,只能调用该类的某个静态方法,静态方法只能访问静态成员变量,指向类内部的变量也必须定义成静态的。 1.懒汉式
package com.qiku.selfcheck; public class Singleton {
    //饿汉式  只存在一个对象
    //私有化构造器  这样就不能再外面new了
    private Singleton(){     }
    //2创建单例对象  4(加static 静态方法只能调用静态的对象或者属性)
     private static Singleton instance=new Singleton();
//3提供一个公开的静态方法,发挥类的对象
    public static Singleton getInstance() {
        return instance;
    }     public static void main(String[] args) {
        Singleton  s1=getInstance();
        Singleton  s2= getInstance();
        System.out.println(s1==s2);
    }
}

对象名字不一样但是 地址是一样的

2.饿汉式
package com.qiku.selfcheck;

public class Singleton2 {
    //懒汉式
   //1,私有化构造器
    private Singleton2() {
    }
    //2 声明当前类对象 但没有初始化 4 static
    private static Singleton2 instance=null;
    //3提供公共的方法来调用
    public static Singleton2 getInstance(){
        if (instance==null){
            instance= new Singleton2();
        }
        return instance;
    }
    public static void main(String[] args) {
        Singleton2 s1=getInstance();
        Singleton2 s2=getInstance();
        System.out.println(s1==s2);
    }
}
懒汉式体现了懒字 啥时候用啥时候创建对象

3.饿汉式和懒汉式的区别

饿汉线程安全,但是加载时间过长

懒汉非线程安全,但是延迟对象的创建

4、共同点

单例类只能有一个实例,单例类必须自己创建自己的唯一实例,单例类必须给所有其他对象提供这一实例。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/947172.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号