最佳单例

三种单例,推荐枚举型单例 第一种: <!-- lang: java --> package ch1;

import java.util.concurrent.atomic.AtomicInteger;

/**
 * 静态公共final单例
 * 
 * 
 * @author fck
 * @since v0.4.6
 * @created 2014年3月11日 下午2:02:18
 */
public class SingletonOne {
public static final SingletonOne INSTANCE = new SingletonOne();

private SingletonOne() {
	// 不可由外部调用
	// 但是无法防止反射
	count = new AtomicInteger(1);
}

private AtomicInteger count = null;

public void sayhi() {
	System.out.println(count.getAndIncrement());

}

public static void main(String args[]) {
	SingletonOne.INSTANCE.sayhi();
	SingletonOne.INSTANCE.sayhi();
	SingletonOne.INSTANCE.sayhi();
	SingletonOne.INSTANCE.sayhi();

}
}

第二种:

package ch1;

import java.util.concurrent.atomic.AtomicInteger;

/**
 * 通过getInstance获取实例的单例
 * 
 * 
 * @author fck
 * @since v0.4.6
 * @created 2014年3月11日 下午2:01:56
 */
public class SingletonTwo {
private static final SingletonTwo INSTANCE = new SingletonTwo();

private SingletonTwo() {
	// 不可由外部调用
	// 但是无法防止反射
	count = new AtomicInteger(1);
}

private AtomicInteger count = null;

public void sayhi() {
	System.out.println(count.getAndIncrement());

}

public static SingletonTwo getInstance() {
	return INSTANCE;
}

public static void main(String[] args) {
	SingletonTwo.getInstance().sayhi();
	SingletonTwo.getInstance().sayhi();
	SingletonTwo.getInstance().sayhi();
	SingletonTwo.getInstance().sayhi();
	SingletonTwo.getInstance().sayhi();

}

}

第三种:

package ch1;

import java.util.concurrent.atomic.AtomicInteger;

/**
 * 
 * 
 * 枚举型的单例
 * 
 * @author fck
 * @since v0.4.6
 * @created 2014年3月11日 下午1:58:24
 */
public enum SingletonEnum {
INSTANCE(1);

private SingletonEnum(int c) {
	count = new AtomicInteger(c);
}

private AtomicInteger count = null;

public void sayhi() {
	System.out.println(count.getAndIncrement());

}

}


package ch1;

public class RunSingletonEnum {

public static void main(String[] args) {
	SingletonEnum.INSTANCE.sayhi();
	SingletonEnum.INSTANCE.sayhi();
	SingletonEnum.INSTANCE.sayhi();
	SingletonEnum.INSTANCE.sayhi();

}

}

转载于:https://my.oschina.net/purely/blog/207136

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值