单例模式

前段时间离职,最近在找工作,于是写写每天面试笔试的总结


今天第一家是中兴的外包,居然没面到,笔试没过,我也是醉了,感觉题很基础的.额!

有8到选择题,4条编程题(选择题记不住了)

第一道就是单例模式,叫编写一个

http://www.blogjava.net/kenzhh/archive/2013/03/15/357824.html推荐看这个总结很全

//单例模式总结与演示
public class SingletonDemo {
	
	//默认构造器私有化
	private SingletonDemo(){}
	//用于返回的实例
	private static SingletonDemo instance;
	
	//1.懒汉模式(线程不安全)
	public static SingletonDemo getInstance(){
		if (instance == null) {
			instance = new SingletonDemo();
		}
		return instance;
	}
	
	//懒汉模式(线程安全模式)
	//加线程锁
	public static synchronized SingletonDemo getInstance2(){
		if (instance == null) {
			instance = new SingletonDemo();
		}
		return instance;
	}
}


        //默认构造器私有化
	private SingletonDemo(){}
	//用于返回的实例
	private static SingletonDemo instance = new SingletonDemo();
	
	//2.饿汉式:先生成一个实例,然后返回,由于已有一个实例,避免了<span style="font-family: georgia, verdana, Arial, helvetica, sans-seriff;font-size:12px; line-height: 20.8px;">多线程的同步问题</span>
	public static SingletonDemo getInstance(){
		return instance;
	}
       //默认构造器私有化
	private SingletonDemo(){}
	//用于返回的实例
	private static SingletonDemo instance = null;
	
	//在静态块中写,这样该类已加载进JVM,就有一个实例了,也避免了<span style="font-family: georgia, verdana, Arial, helvetica, sans-seriff;font-size:12px; line-height: 20.8px;">多线程的同步问题</span>
	static{
		instance = new SingletonDemo();
	}
	
	//2.饿汉式(第二种写法)
	public static SingletonDemo getInstance(){
		return instance;
	}

public enum Singleton {  
     //4.枚举式,感觉是最简单的,我就写的这个
     INSTANCE;  
     public void Method() {  
         .....
     }  
 } 

//双重校验锁式,今天才知道 
//volatile的作用是: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.
//简单地说就是防止编译器对代码进行优化
 public class Singleton {  
      private volatile static Singleton singleton;  
      private Singleton (){}   
      public static Singleton getSingleton() {  
      if (singleton == null) {  
          synchronized (Singleton.class) {  
          if (singleton == null) {  
              singleton = new Singleton();  
          }  
         }  
     }  
     return singleton;  
     }  
 }  




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值