假设我有一个单例类
abstract class Foo {
private static Foo instance;
public static synchronized Foo getInstance() {
if(instance == null) {
instance = new FooImpl();
}
return instance;
}
}
此方法是否锁定在 Class 对象上?抽象类甚至有类对象吗?
最佳答案
如果您的 getInstance
方法是代码中的非静态方法,您需要在 Foo
的实例上调用它,该实例将是一个非抽象子类同步方法的监视器对象就是那个实例。
如果让它同步
,它将锁定抽象类的类对象。
您可以在 Java language specification 17.1 中找到详细信息
关于java - 在抽象类中同步静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46272032/