class Bank{
private Bank(){}
private static Bank instance = null;
public static Bank getInstance() {
//方式一:效率稍差
// synchronized (Bank.class) {
// if (instance == null) {
// instance = new Bank();
// }
// return instance;
// }
//方式二:效率更高
if(instance==null){
synchronized (Bank.class) {
if (instance == null) {
instance = new Bank();
}
}
}
return instance;
}
}
这篇博客探讨了 Java 中实现单例模式的两种常见方法,分别是双检锁(Double-Check Locking)和静态内部类方式。这两种方法在保证线程安全的同时,考虑了效率问题。双检锁通过减少同步块的使用提高了效率,而静态内部类则在类加载时确保单例的创建,避免了同步开销。
653

被折叠的 条评论
为什么被折叠?



