设计模式(Java)-003-单例模式-饿汉式

  • 饿汉式(线程安全、调用效率高、但是不能延迟加载)
    1.线程安全:在类加载时完成对象的创建
    2.调用效率高:getInstance没有任何同步限制
    3.不能延迟加载:正是因为在类加载时就完成了对象的创建

  • 步骤:
    1.构造器私有
    2.提供静态私有的对象
    3.提供一个静态公有方法,获取静态私有对象

  • 说明:

    1. static属性会在类装载时进行初始化,此时并不会设计到多线程问题。虚拟机保证只会装载一次该类,所以是线程安全的。
      2.如果只是加载类本身,并不需要使用到这个单例的对象,那么会造成资源浪费。

测试代码

package top.itcourse.gof23;

/**
 * 饿汉式单例模式创建步骤:
 *      1.构造器私有
 *      2.提供静态私有的对象
 *      3.提供一个静态公有方法,获取静态私有对象
 *
 *  说明:
 *      1.对象创建时机:
 *          static属性会在类装载时进行初始化,此时并不会设计到多线程问题。虚拟机保证只会装载一次该类,
 *          所以是线程安全的。
 *       2.缺点:
 *          如果只是加载类本身,并不需要使用到这个单例的对象,那么会造成资源浪费。
 */
public class SingletonHungry {
    // 1.私有构造器
    private SingletonHungry() {
    }

    // 2.提供静态私有的对象
    private static SingletonHungry sh = new SingletonHungry();

    // 3.提供一个静态公有方法,获取静态私有对象
    public static SingletonHungry getInstance() {
        return sh;
    }
}


其它



源码下载:

关注下方微信公众号,
回复:
DM.code

完整教程PDF版本下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值