gpt4 book ai didi

java - 在 getInstance() 方法或实例变量定义中初始化单例之间是否存在功能差异

转载 作者:太空宇宙 更新时间:2023-11-03 11:41:37 25 4
gpt4 key购买 nike

这两种实现单例的方式在功能上有什么区别吗?

public class MySingleton {
private static MySingleton instance;

public static MySingleton getInstance() {
if (instance == null) {
instance = new MySingleton();
}
return instance;
}
}


public class MySingleton {
private static final MySingleton instance = new MySingleton();

public static MySingleton getInstance() {
return instance;
}
}

除此之外,第一种方式允许某种 clearInstance() 方法。尽管您可以在第二种方法中使实例不是最终的。

第一种方法在技术上是否表现更好,因为它只在第一次需要时而不是在程序启动时初始化?

最佳答案

第一个是延迟加载,第二个是预加载。也许您的应用程序永远不会调用单例,因此如果创建单例的新实例是消耗大量资源的操作,那么延迟加载会更好,因为它会在需要时创建新实例。

关于java - 在 getInstance() 方法或实例变量定义中初始化单例之间是否存在功能差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53242220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com