java中的两个实现有什么区别,哪个是正确的,为什么?
class Singleton
{
private static Singleton instance = new Singleton();
private Singleton()
{
System.out.println("Singleton(): Initializing Instance");
}
public static Singleton getInstance()
{
return instance;
}
}
或者
class Singleton
{
private static Singleton instance;
static
{
instance = new Singleton();
}
private Singleton()
{
System.out.println("Singleton(): Initializing Instance");
}
public static Singleton getInstance()
{
return instance;
}
}
最佳答案
首先回答你的问题,
据我所知,两个代码片段是相同的。我没看出有什么区别。
但是,正如其他答案所建议的,有更好的方法来创建单例实现。但这对于你的问题来说有点偏离主题,而互联网(谷歌)是你找到答案的最好 friend 。
关于java - 什么是正确的单例实现以及为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22119237/