これについていくつか収集しました.getClass().getClassLoader().getResource("/").getPath()



jdk getClassLoader() :
/**
  * Returns the class loader for the class. Some implementations may use
  * null to represent the bootstrap class loader. This method will return
  * null in such implementations if this class was loaded by the bootstrap
  * class loader.
  *
  * <p> If a security manager is present, and the caller's class loader is
  * not null and the caller's class loader is not the same as or an ancestor of
  * the class loader for the class whose class loader is requested, then
  * this method calls the security manager's <code>checkPermission</code>  
  * method with a <code>RuntimePermission("getClassLoader")</code>  
  * permission to ensure it's ok to access the class loader for the class.
  *  
  * <p>If this object
  * represents a primitive type or void, null is returned.
.....

上の英語は以下の言葉で理解できます.
クラスをロードするプロセスは非常に簡単です.クラスの場所を検索し、見つかったJavaクラスのバイトコードをメモリにロードし、対応するClassオブジェクトを生成します.Javaのクラスローダはこのようなプロセスを実現するために専用されています.JVMにはクラスローダが1つだけではありません.実際には、もしあなたが望むなら、JVMに無数のクラスローダを持たせることができます.もちろん、JVMをテストする以外に、他の用途は考えられません.クラス・マウント自体もクラスであり、メモリにマウントする必要があるという問題を発見したはずですが、これらのクラス・マウントは誰がマウントするのか、ルートが必要でしょう.そう、確かにこのような根が存在しています.それは神龍が頭を見て尾を見ないBootstrap ClassLoaderです.Javaの実行環境に必要なすべてのクラスライブラリは、それによってロードされ、それ自体がC++で書かれたプログラムであり、独立して実行することができ、JVMの実行起点と言えるので、偉大でしょう(今のところ私は何が偉大なのか感じていません).Bootstrapがタスクを完了すると、Java実行環境拡張パッケージのクラスをマウントするための拡張クラスマウントExtClassLoaderが生成されます(実際には、Java実行環境拡張パッケージのクラスをマウントするために拡張クラスマウントExtClassLoaderも使用されています).このクラスマウントこそ、私たちがよく使用しているもので、呼び出すことができます.
ClassLoader.getSystemClassLoader()を取得するには、クラス・ローダに関する操作設定や新しいクラス・ローダのカスタマイズがプログラムで使用されていないと仮定します.では、私たちが作成したjavaクラスはすべてロードされます.尊敬に値します.AppClassLoaderがクラスを検索するエリアはよく知られているClasspathであり、初心者が乗り越えなければならない敷居でもあり、キラキラした感じがするかどうかは、そのクラス検索範囲によってクラスパスクラスマウンタと名付けられています.それとも以前に仮定した場合、Javaに新しいクラスが現れた場合、AppClassLoaderはまずクラスでその親クラスローダ、すなわちExtion ClassLoaderにクラスをロードできるかどうかを尋ね、できればAppClassLoaderはこの仕事をしない.同様にExtion ClassLoaderはロード時に親クラスローダに聞いてみる.クラスローダは実際には木の構造図であり、各クラスローダには自分の父親がいて、クラスローダはクラスをロードするときに、いつも自分の親ローダをロードさせ(どんなに目上の人を尊敬しているか)、親ローダがクラスをロードできない場合は、自分でロードし、ロードできない場合は、申し訳ありませんが、Exception、class not foundと叫びます.クラスパスローダを直接使用してクラスをロードできなくなったときに放出されるのがNoClassDefFoundException異常です.カスタムクラス・ローダloadClassメソッドまたはClassLoaderのfindSystemClassメソッドを使用してクラスをロードする場合、意図的に変更しない場合は、ClassNotFoundExceptionが放出されます.
ここでjdkは、クラスがbootstrapによってロードされている場合、このクラスを通じてclassloaderを取得すると、nullを返すjdkの実装があります.例えば、new Object(ject)を使用します.getClass().getClassLoader()ではnullが返されます.そうすると上のコードにNull Pointer異常が発生します.そのため、念のため自分で書いたクラスを使ってclassloader("this.getClass().getClassLoader(")を取得したほうが問題ありません.