单例模式的饿汉式和懒汉式

/*
 * 单例设计模式:
 * 1.所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例
 *  
 * 2.如何实现?
 *   饿汉式    VS    懒汉式
 *
 * 3.区分饿汉式和懒汉式。
 *        饿汉式:坏处:对象加载时间过长。
 *                 好处:饿汉式是线程安全的。
 *
 *   懒汉式:好处:延迟对象的创建。
 *                坏处:目前的写法,会线程不安全。---》到多线程内容时,再修改
 */
public class SingletonTest {
    public static void main(String[] args) {
//        Bank bank1 = new Bank();
//        Bank bank2 = new Bank();
        
        Bank bank1 = Bank.getInstance();
        Bank bank2 = Bank.getInstance();
        
        System.out.println(bank1 == bank2);
        
    }
}

//单例的饿汉式
class Bank{
    
    //1.私有化类的构造器
    private Bank(){
        
    }
    
    //2.内部创见类的对象
    //4.要求此对象也必须声明为静态的(随类一同加载,使得类加载时,即创建权限为private名为instance的Bank类实例对象)
    private static Bank instance = new Bank();
    
    //3.提供公共的静态的方法,返回类的对象
    public static Bank getInstance(){
        return instance;
    }
}

/*
 * 单例的懒汉式实现
 *
 */
public class SingletonTest2 {
    public static void main(String[] args) {
        
        Order order1 = Order.getInstance();
        Order order2 = Order.getInstance();
        
        System.out.println(order1 == order2);
    }
}
class Order{
    //1.私有化类的构造器
    private Order(){
        
    }
    
    //2.声明当前类对象,没有初始化
    //此对象也必须声明为 static 的
    private static Order instance = null;
    
    //3.声明 public、static 的返回当前类对象的方法
    public static Order getInstance(){
        if(instance == null){
            instance = new Order();            
        }
        return instance;
    }
}

posted on   HHHuskie  阅读(34)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示