Java 静态方法同步是否会延迟类对象的创建?

Java 静态方法同步是否会延迟类对象的创建?,java,synchronization,Java,Synchronization,class A{ synchronized static void method(){ doSomethingLongTime(); // here A.class monitior is taken. } } 上面的代码描述了我的问题:newa()明确处理A.class,那么它被阻止了吗?没有。静态方法上的锁是在类对象上获取的。没错。 但新的A()不在同步块内。因此,此行不需要等待任何lock对象&可以继续。除非在同步块中明确指定,否则不会阻止新对象的构造。您

class A{
    synchronized static void method(){
        doSomethingLongTime(); // here A.class monitior is taken.
    }
}

上面的代码描述了我的问题:
newa()
明确处理A.class,那么它被阻止了吗?

没有。静态方法上的锁是在类对象上获取的。没错。
但新的A()不在同步块内。因此,此行不需要等待任何lock对象&可以继续。除非在同步块中明确指定,否则不会阻止新对象的构造。

您的方法不是
静态的
方法
是从构造函数调用的?是的,方法是静态的,抱歉,修复了
…那么它被阻止了吗?
,意思是
是为类a同步创建对象吗?
。不。即使在构造函数中调用了method(),也只有方法调用是同步的,而不是构造函数的其余部分。补充:我多次听说对象实例化(new)是同步的。静态方法上的同步始终附加到定义类。创建对象不会因为同步而绊倒,除非您告诉代码在CTOR中这样做
new A(); // does this blocked by doSomethingLongTime() ?