Java程序性能优化

设计优化之单例模式

2017-06-04  本文已影响5人  Chinesszz
写一个简单的单例模式
public class Singleton{
  private Singleton(){
    ...
  }
  private static Singleton instance=new Singleton();
  
  public static Singleton getInstance(){
    return instance;
  }
}

懒加载单例
public class LazySingleton{
  private LazySingleton(){
  ...
  }
  private static LazySingleton instance=null;
  public static synchronized LazySingleton getInstance(){
    if(instance==null){
      instance=new LazySingleton();
    }
    return instance;
  }
}

重头戏优化的单例

/**
 * Created by mac on 2017/6/3.
 * 单例模式:
 * 此种方法好处,
 * 静态内部类并不会直接加载,当调用instance方法时候才会加载
 * 
 * 使用同步关键字修饰的会降低速度
 */
public class StaticSingleton {
    private StaticSingleton(){
    }
    private static class SingletonHolder{
        private static StaticSingleton instance=new StaticSingleton();
    }
    public static StaticSingleton getInstance(){
        return SingletonHolder.instance;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读