いいえ。すべてのクラスローダーには祖先としてブートストラップクラスローダーがあり、クラスローダーですでに定義されているクラスをロードしようとすると、祖先のバージョンが使用されるだけです。java.lang.Objectこれは、その他の組み込み関数が再定義されるのを防ぐための意図的なものです。
のjavadocからClassLoader:
クラスは、委任モデルを使用ClassLoaderしてクラスとリソースを検索します。の各インスタンスにClassLoaderは、関連付けられた親クラスローダーがあります。クラスまたはリソースの検索が要求されると、ClassLoaderインスタンスは、クラスまたはリソース自体を検索する前に、クラスまたはリソースの検索をその親クラスローダーに委任します。「ブートストラップクラスローダー」と呼ばれる仮想マシンの組み込みクラスローダーには、それ自体には親がありませんが、ClassLoaderインスタンスの親として機能する場合があります。
defineClass呼び出されることなく公開するカスタムクラスローダーを定義し、findClassで発生する委任を回避できる場合がありますが、存在する場合はすべてのJVMで意図したとおりに機能することにfindClass依存しません。defineClass(className, bytes)parent.findClass(className)