Singelton *s=Singelton::GetInstance()前面的Singelton *s 只是定义个指针,指向的类型是Singelton ,他保留的只是地址,所以不用构造并没有调用任何函数。
Singelton*Singelton::instance_这个只是实例化一次instance_;
最好应该这样做Singelton*Singelton::instance_=NULL否则他就是一个野指针,这样很危险。
设计模式在面试中挺常考的,单例模式是考的最多的。线程安全的单例还有很多种实现方法。可以使用静态内部类、双重校验锁、静态代码块等。
1、饿汉式public class Singleton(){
private static Singleton instance = new Singleton()
private Singleton(){}
public static Singleton getInstance(){
return instance
}
}
2、懒汉式
public class Singleton(){
private static Singleton instance
private Singleton(){}
public static synchronized Singleton getInstance(){
if(instance==null){
instance = new Singleton()
}
return instance
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)