If the JVM's escape analysis can prove the object doesn't escape, it can be allocated on the stack instead, and if it can prove you never use it in "synchronized...