java单例设计模式有两种方式实现:
第一种方法:
public class Singleton { private Singleton() { } // 类加载器加载该类时创建 private static Singleton instance = new Singleton(); public static Singleton getInstance() { return instance; } }
第二种方法:
public class Singleton {
private static Singleton instance = null;
private Singleton() {
}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
一般认为第一种方式比较安全.但在某些情况下第一种方法并不能达到单例的目的,比如有多个Singleton类被不同的装载器装载时,就会出现多个对像,在EJB这样的分布式系统中需要注意这种情况,因为EJB是跨服务器和跨JVM的.