java单例模式

所谓单例模式就是在同包下,使其他类调用自身的时候通过私有化构造方法使其无法实例化多个对象,

具体是通过类属性(stastic)指向一个实例化对象,并且通过调用返回这个对象,

因为是静态的,所以只有在第一次调用的时候才真正的实例化了一个对象,其他多次调用的都是这一个对象。

----小白的理解,不对请留言

单例模式又分 饿汉式 和 懒汉式

饿汉式(它是无论如何都会实例化一个对象,即使你不调用这个方法)

package charactor;

public class GiantDragon {
    private GiantDragon(){
//私有化构造方法,使外部无法通过new 创建新的实例
    }
    private static GiantDragon instance = new GiantDragon();
//类属性指向的实例化对象
    public  static GiantDragon getInstance(){
        return instance;
//调用立即返回对象
    }
}
package charactor;

public class TestGiantDragon {

    public  static void main(String[] args){
//        TestGiantDragon g1 = new TestGiantDragon(); new 会报错
        GiantDragon  g = GiantDragon.getInstance();
        GiantDragon g1 = GiantDragon.getInstance();

    }
}

懒汉单例

与饿汉不一样的是,他会在调用之后在做一个判断,只有在调用这个方法的时候才会实例化对象,这在一定程度上节省了时间,

package charactor;

public class GiantDragon {
    private GiantDragon(){

    }
    private static GiantDragon instance; //先指向null

    public  static GiantDragon getInstance(){
        if (null == instance) 
            instance = new GiantDragon(); //在调用方法的时候才实例化,
        return instance;
    }
}

										给大家推荐一个网址,学习java 巨好用 www.how2j
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值