title: How is monitor acquired in case of static function?
body: <p>According to JLS <a href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.3.6" rel="nofollow noreferrer">Section §8.4.3.6</a>:</p>
  <blockquote>
  <p>A synchronized method acquires a monitor (§17.1) before it executes.</p>
  <p>For a class (static) method, the monitor associated with the Class object for the method's class is used.</p>
  </blockquote>
  <p>In this synchronized  method move class level lock is acquired. So which Class object is exactly used for obtaining this lock. Is it  <code>Interface.class</code> or <code>ClassImplementingInterface.class</code>? If it is the later is there any scenario where we can have interface monitors? or rather does interface have a monitor?</p>
  <p>I have read each object is associated with a monitor and in case of static locks monitor is obtained on corresponding Class object. As we can do Interface.Class which means interface has corresponding Class object can we get a lock on that monitor without explicitly saying <code>synchronized(Interface.class)</code>.</p>