单例学习


/**
* 单例模式,通常单例模式在Java语言中,有两种构建方式:
* 懒汉方式:指全局的单例实例在第一次被使用时构建。
* 饿汉方式:指全局的单例实例在类装载时构建。
* @author xw
*/

public class Single {
//懒汉模式
private static Single instance = null;
/**
* 私有的默认构造子,保证外界无法直接实例化
*/
private Single(){
System.out.println("Single()");
}

/**
* 静态工厂方法,返还此类的惟一实例
*/
synchronized public static Single getInstance()
{
if (instance == null)
{
instance = new Single();
}
System.out.println("getInstance()");
return instance;
}


//饿汉模式
private static final Single instance = new Single();
/**
* 私有的默认构造子,保证外界无法直接实例化
*/
private Single(){
System.out.println("Single()");
}

public static Single getInstance(){
System.out.println("getInstance");
return instance;
}


public static void main(String[] args) {
System.out.println("========================================");
System.out.println("下面是使用单例模式,来调用类的实例");
System.out.println("========================================");
for(int i=0;i<6;i++){
int m=i+1;
System.out.println("第 "+m+" 次"+"得到的对象值为 "+Single.instance);
System.out.println("第 "+m+" 次"+"得到的对象值为 "+Single.getInstance());
}
}
}

1、懒汉方式:
========================================
下面是使用单例模式,来调用类的实例
========================================
第 1 次得到的对象值为 null
Single()
getInstance()
第 1 次得到的对象值为 Single@1f6a7b9
第 2 次得到的对象值为 Single@1f6a7b9
getInstance()
第 2 次得到的对象值为 Single@1f6a7b9
第 3 次得到的对象值为 Single@1f6a7b9
getInstance()
第 3 次得到的对象值为 Single@1f6a7b9
第 4 次得到的对象值为 Single@1f6a7b9
getInstance()
第 4 次得到的对象值为 Single@1f6a7b9
第 5 次得到的对象值为 Single@1f6a7b9
getInstance()
第 5 次得到的对象值为 Single@1f6a7b9
第 6 次得到的对象值为 Single@1f6a7b9
getInstance()
第 6 次得到的对象值为 Single@1f6a7b9

2、饿汉方式
Single()
========================================
下面是使用单例模式,来调用类的实例
========================================
第 1 次得到的对象值为 Single@1f6a7b9
getInstance
第 1 次得到的对象值为 Single@1f6a7b9
第 2 次得到的对象值为 Single@1f6a7b9
getInstance
第 2 次得到的对象值为 Single@1f6a7b9
第 3 次得到的对象值为 Single@1f6a7b9
getInstance
第 3 次得到的对象值为 Single@1f6a7b9
第 4 次得到的对象值为 Single@1f6a7b9
getInstance
第 4 次得到的对象值为 Single@1f6a7b9
第 5 次得到的对象值为 Single@1f6a7b9
getInstance
第 5 次得到的对象值为 Single@1f6a7b9
第 6 次得到的对象值为 Single@1f6a7b9
getInstance
第 6 次得到的对象值为 Single@1f6a7b9
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值