Can someone please tell me whether its more efficient to synchronize on a method or a block in Java? 
Just thinking about this, when you synchronize on something it affects the performance so I would assume that synchronizing on a block is preferential to synchronizing on a method as it takes up less code - is this always the case?
 
    