<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### 最常見的類加載器分類 * Bootstrap ClassLoader * ExtClassLoader * AppClassLoader * User Defined Classloader\(自定義類加載器\) #### Bootstrap ClassLoader * 稱為啟動類加載器,主要是用于加載JDK核心類,包括JRE\_HOME\lib下的**rt.jar、resources.jar、charsets.jar**等,或者由"-Xbootclasspath"指定路徑中的所有類型 * 啟動類加載器由C++編寫并嵌在JVM內部,加載器名稱為Null 可通過如下程序獲得該類加載器從哪些地方加載了相關的jar或class文件: ``` URL[] urls = sun.misc.Launcher.getBootstrapClassPath().getURLs(); for (int i = 0; i < urls.length; i++) { System.out.println(urls[i].toExternalForm()); } output==> file:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/resources.jar file:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/rt.jar file:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/sunrsasign.jar file:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/jsse.jar file:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/jce.jar file:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/charsets.jar file:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/jfr.jar file:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/classes ``` 其實上述結果也是通過查找**sun.boot.class.path**這個系統屬性所得知的。 ``` System.out.println(System.getProperty("sun.boot.class.path")); ``` #### ExtClassLoader ExtClassLoader派生于ClassLoader\(Java語言編寫\),負責加載JAVA\_HOME/lib/ext目錄下的類 #### AppClassLoader AppClassLoader系統類加載器派生于ClassLoader\(Java語言編寫\),用于加載當前應用classpath下的所有類,也被稱作SystemClassLoader ``` package com.quancheng.jvm; public class Appliction { public static void main(String[] args) { ClassLoader bootstrap = System.class.getClassLoader(); System.err.println(null != bootstrap ? bootstrap.getClass().getName() : null); ClassLoader ext = sun.security.ec.SunEC.class.getClassLoader(); System.err.println(ext); ClassLoader app = Appliction.class.getClassLoader(); System.err.println(app.getClass().getName()); } } output==> null sun.misc.Launcher$ExtClassLoader@eed1f14 sun.misc.Launcher$AppClassLoader ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看