两种单例模式:
public class QQInfoManager {
private static final QQInfoManager mInstance = new QQInfoManager();
private QQInfoManager() {
}
public static QQInfoManager getInstance() {
return mInstance;
}
public boolean funcA() {
return true;
}
......
}
public
class
QQInfoManager {
private
static
QQInfoManager mInstance =
null
;
public
static
QQInfoManager getInstance() {
if
(mInstance==
null
) {
mInstance =
new
QQInfoManager();
}
return
mInstance;
}
public
boolean
funcA() {
return
true
;
}
}
第二种单例模式的实现思路,是在第一次使用该类对象的时候来才创建,这样的好处在于节省程序启动动时间和内存空间,如果程序运行过程中一直没有使用该类对象,则内存中不会创建该对象。而第一种方式在程序启动的时候就在内存中创建好了该对象,直到程序结束。但是,第二种方式也有弊端,它并不是线程安全的,在多线程中,如果两个线程同时第一次使用该类对象,则可能会产生意想不到的结果。