(Likely this has been asked an answered a million times here, nonetheless, here goes ... )
Is it correct to say that there is one 'lock' per object? That is .. one 'lock' per instance of a class. For example, if class Foo has fifty synchronized methods. Then a thread that acquires a 'lock' on one those methods will block (until it completes) all other threads trying to call any of the other forty-nine synchronized methods of that instance?
.... Or ....
Does each synchronized method or synchronized block each have its own lock?