Locks are held on Java objects, not java methods. So when synchronized is used on a method, it locks the "this" object. In the case of a static method, it locks the class object.
You can explicitly specify the monitor object by using synchronized ( object ) { }