java 饿汉式单例_java单例模式(懒汉式和饿汉式)

单例模式:

简单的来说,就是为了防止你在程序中new 来new去,明明只需要一个东西,你却new了很多次,内存中存在大量没用的垃圾

单例模式特点

1单例类只能有一个实例。

2单例类必须自己自己创建自己的唯一实例。

3单例类必须给所有其他对象提供这一实例。

首先我们看的是懒汉式,看这个名字就知道,它比较懒,注意他并没有直接创建对象,而是

private static Lazy lazy=null;

这是一个和饿汉式很大的却别

public class Lazy {

//这里和饿汉式的第一个区别,先不创建对象,而是等到要使用这个对象的时候采取创建

private static Lazy lazy=null;

//重写构造函数,组织外部代码直接初始化Lazy类

private Lazy(){}

public static Lazy getLazy(){

// 先判断有没有这个对象

if(lazy==null){

lazy=new Lazy();

}

return lazy;

}

}

测试代码:

// 懒汉式测试

Lazy lazy1=Lazy.getLazy();

Lazy lazy2=Lazy.getLazy();

System.out.println(lazy1==lazy2);

发现打印结果为true,这样证明没有多产生对象,只有一个对象在使用的过程中被创建了出来

案例2:饿汉式

public class Hurry {

private static Hurry hurry=new Hurry();

private Hurry(){}

public static Hurry getHurry(){

return hurry;

}

}这个简单多了,还是首先修改构造函数,让这东西不要通过new出来,然后通过静态方法得到

Hurry h=Hurry.getHurry();

Hurry h2=Hurry.getHurry();

System.out.println(h==h2);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值