小的不才,学习单例模式时,发现维基百科的单例模式代码有点小问题,已经被我
修改
原变量代码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;
- }
- }