线程(6)--单例设计模式及其应用

单例设计模式

保证类在内存中只有一个对象。

实现思想:
(1)控制类的创建,不让其他类来创建本类的对象。private
(2)在本类中定义一个本类的对象。Singleton s;
(3)提供公共的访问方式。  public static Singleton getMethod(){return s}

两种实现方式:

 1.饿汉式(开发):
 2.懒汉式(面试):单例的延迟加载模式。
 3.区别:
    (1)饿汉式:省时间,费内存;懒汉式:费时间,省内存;
    (2)在多线程访问时,饿汉式不会创建多个对象,而懒汉式可能会创建多个对象。
package com.fenqing.Thread;

public class d01_singleton {

    public static void main(String[] args) {
        singleton1 s1=singleton1.getMethod1();      //4.创建对象访问
        singleton1 s2=singleton1.getMethod1();

        singleton2 s3=singleton2.getMethod2();      //4
        singleton2 s4=singleton2.getMethod2();

        System.out.println(s1==s2);                 //5.判断其是否为同一地址,返回true或false

        System.out.println(s3==s4);                 //5
    }

}
class singleton1{                                   // 饿汉式
    private singleton1(){
                                                    //1.创建私有构造方法
    }
    private static singleton1 s=new singleton1();   //2.创建私有、静态的本类对象,或是public static final singleton1 s=new singleton1();
    public static singleton1 getMethod1(){
        return s;                                   //3.创建公有、静态的,访问对象的方法,以便其他类访问
    }
}
class singleton2{                                   // 懒汉式
    private singleton2(){
                                                    //1.创建私有构造
    }
    private static singleton2 s;                    //2.创建本类对象
    public static singleton2 getMethod2(){
        if(s==null){                                //3.创建访问方法,并判断是否为空
            s=new singleton2();                     
        }
        return s;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值