title: Why isn't calling wait(), notify() or notifyAll() without a synchronized block not a compiler error?
body: <p>If we call <code>wait()</code>, <code>notify()</code> or <code>notifyAll()</code> on an object without a <code>synchronized</code> block, we get an <code>IllegalMonitorStateException</code> at runtime. </p>
  
  <p>Why doesn't the compiler flag me if I try to call these methods without a synchronized block?</p>