的Singleton模式,我有这样的的Java实现饿
public class MySingleton {
private static MySingleton instance = new MySingleton();
private MySingleton(){}
public static MySingleton getInstance() {
return instance;
} }
这是在Java单例模式饿实现一些代码,我们知道实例已经建立前的getInstance调用。
我们也知道,当类MySingleton被实例化的静态成员将被实例化。只有在上面的代码中调用getInstance时,类MySingleton才会被实例化。所以,该实例在调用getInstance之后创建。
那么哪一个合适?
为什么?
的问题是不重复的。
它不谈论时静态类初始化发生,但关于饥饿实施Singleton模式有些怀疑。
可能是在这种情况下,张贴在这个问题上的类几乎肯定不会被初始化之前的getInstance被称为第一次。
对我来说,如果这个问题是“什么时候静态类初始化发生?这个问题是关于建议的Singleton实现的正确性。 – Doleron
在这种情况下类实例化后,类成员没有实例化,它在类被初始化时实例化,也就是在这种情况下,在第一次调用getInstance时实例化。但是,请记住,这是一个不必要的复杂单例实现。更简单的是'public enum Singleton {INSTANCE; }'。 –