小的不才,学习单例模式时,发现维基百科的单例模式代码有点小问题 ,已经被我 修改
原变量代码private static final Singleton instance= null,有误,final变量被赋值后是不可以再重新赋值的
应该修改为private static Singleton instance;
final关键字的用途如下:1、一个永不改变的编译时常量
2、一个在运行时被初始化的值你不希望他改变
3、一个既是static又是final的域只占据一段永不改变的存储空间
单例模式的创建主要有2中方式:
懒汉模式,全局的单例实例在第一次使用时被创建
public class Singleton {
//懒汉模式,全局的单例实例在第一次被使用时创建
private static Singleton instance = null;
private Singleton() {
super();
}
public static synchronized Singleton getInstance(){
if(null==instance){
instance = new Singleton();
}
return instance;
}
}
饿汉模式:每次类被转载时,均需要重新再创建
public class Singleton {
//饿汉模式,每次类被转载时,均需要创建
private static Singleton instance = new Singleton();
private Singleton() {
super();
}
public static synchronized Singleton getInstance(){
return instance;
}
}