今天笔试有一个的singleton的实现,由于光有个概念,没写对。。。
看过之后实现较简单,自己动手做了下
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例
/*第一种生成singleton优点:简单,缺点:生成的资源浪费*/
class singleton1{
private singleton1(){};
private static singleton1 s1=new singleton1();
public static singleton1 getSingleton(){
return s1;
}
}
/*第二种优点:不占用资源,缺点:不是完全的线程安全,如果在if语句执行过后转移到另一线程执行,在转移回来的时候将不进行判断,又生成一次*/
class singleton2{
private singleton2(){
}
private static singleton2 s2=null;
public static synchronized singleton2 getSingleton(){
if(s2==null)
s2=new singleton2();
return s2;
}
}
public class Singleton {
public static void main(String []args){
singleton1 s1=singleton1.getSingleton();
singleton1 s2=singleton1.getSingleton();
System.out.println(s1==s2);//单例模式
}
}