答案是:是的。
ClassLoader.loadClass()源码:
Unless overridden, this method synchronizes on the result of <getClassLoadingLock> method during the entire class loading process.
除非是重写,那么这个整个加载过程都是同步的。
/**
* Loads the class with the specified <a href="#name">binary name</a>. The
* default implementation of this method searches for classes in the
* following order:
*
* <ol>
*
* <li><p> Invoke {@link #findLoadedClass(String)} to check if the class
* has already been loaded. </p></li>
*
* <li><p> Invoke the {@link #loadClass(String) <tt>loadClass</tt>} method
* on the parent class loader. If the parent is <tt>null</tt> the class
* loader built-in to the virtual machine is used, instead. </p></li>
*
* <li>&l