There are two type of locks: Object Level and Class Level.
Object Level lock is applicable on the non-static synchronized methods. Every object has a lock while using the method, the object first acquires the lock, then the code inside the method is executed.
Class Level locks are applicable on the static synchronized methods. Every class has a lock which is used when calling the synchronized static method.
Here are the answers to your questions:
false
true
non-static synchronized method cannot be accessed by the static synchronized method. But non-static synchronized method can access the static synchronized method. If we access the static synchronized method then all the static synchronized methods get blocked but we can access the other static and non-static methods.
static synchronized method access does not block other non-static, non-synchronized methods.
static non-synchronized methods will be accessible.
non-static synchronized methods will be blocked as explained above.
Object level lock can contain the class level lock which means a non-static synchronized method can call the static synchronized methods.