public class A { private synchronized static void g(){ int x=1; } synchronized A f(){ return null; } public void foo(){ g(); synchronized ( this ) { g(); } g(); synchronized ( this ) { synchronized ( this ) { synchronized ( this ) { g(); } } g(); } synchronized ( this ) { g(); } } }