类加载器负责将.class文件加载到内存,并为其创建java.lang.Class对象,这个对象就代表这个类。

在Java中,通过包名+类名来唯一标识一个类,而在JVM中,要用 类加载器实例+包名+类名 来唯一标识一个类。 可见JVM中是不止一种类加载器的。

在JVM中,类加载器是成层次结构的, 这种层次结构自上而下分别是根类加载器(BootstrapLoader),扩展类加载器(extensionLoader)和系统类加载器(systemLoader)还有用户自定义类加载器

根类加载器(BootstrapLoader)

负责加载JAVA核心类(例如tr.jar)。 根类加载器是由JVM自身实现的(C/C++),而不是JAVA实现,更不是java.lang.ClassLoader的子类。

下面程序演示了根类加载器所加载的JAVA核心类库。

 1 package jvmTest;
 2 
 3 import java.net.URL;
 4 
 5 import sun.misc.Launcher;
 6 
 7 public class Boot {
 8     public static void main(String[] args) {
 9         /*
10          * 这里有可能报错 Access restriction: The type 'Launcher' is not API
11          * 只需要将 全局属性Project>preferences>java>Compiler>Errors/Warnings>
12          * 把右侧的【Deprecated and restricted API>Forbidden reference的Error】置为【Warning】.
13          */
14         URL[] urls = sun.misc.Launcher.getBootstrapClassPath().getURLs();
15         for(int i = 0; i < urls.length; i++) {
16             System.out.println(urls[i].toExternalForm());
17         }
18     }
19 }

在我的环境中输入如下,

 1 file:/C:/Program%20Files%20(x86)/IBM/Java70/jre/bin/default/jclSC170/vm.jar
 2 file:/C:/Program%20Files%20(x86)/IBM/Java70/jre/lib/se-service.jar
 3 file:/C:/Program%20Files%20(x86)/IBM/Java70/jre/lib/math.jar
 4 file:/C:/Program%20Files%20(x86)/IBM/Java70/jre/lib/jlm.jar
 5 file:/C:/Program%20Files%20(x86)/IBM/Java70/jre/lib/ibmorb.jar
 6 file:/C:/Program%20Files%20(x86)/IBM/Java70/jre/lib/ibmorbapi.jar
 7 file:/C:/Program%20Files%20(x86)/IBM/Java70/jre/lib/ibmcfw.jar
 8 file:/C:/Program%20Files%20(x86)/IBM/Java70/jre/lib/ibmpkcs.jar
 9 file:/C:/Program%20Files%20(x86)/IBM/Java70/jre/lib/ibmcertpathfw.jar
10 file:/C:/Program%20Files%20(x86)/IBM/Java70/jre/lib/ibmjgssfw.jar
11 file:/C:/Program%20Files%20(x86)/IBM/Java70/jre/lib/ibmjssefw.jar
12 file:/C:/Program%20Files%20(x86)/IBM/Java70/jre/lib/ibmsaslfw.jar
13 file:/C:/Program%20Files%20(x86)/IBM/Java70/jre/lib/ibmjcefw.jar
14 file:/C:/Program%20Files%20(x86)/IBM/Java70/jre/lib/ibmjgssprovider.jar
15 file:/C:/Program%20Files%20(x86)/IBM/Java70/jre/lib/ibmjsseprovider2.jar
16 file:/C:/Program%20Files%20(x86)/IBM/Java70/jre/lib/ibmcertpathprovider.jar
17 file:/C:/Program%20Files%20(x86)/IBM/Java70/jre/lib/xmldsigfw.jar
18 file:/C:/Program%20Files%20(x86)/IBM/Java70/jre/lib/xml.jar
19 file:/C:/Program%20Files%20(x86)/IBM/Java70/jre/lib/charsets.jar
20 file:/C:/Program%20Files%20(x86)/IBM/Java70/jre/lib/resources.jar
21 file:/C:/Program%20Files%20(x86)/IBM/Java70/jre/lib/rt.jar
22 file:/C:/Program%20Files%20(x86)/IBM/Java70/jre/lib/ibmgpu.jar
View Code

相关文章:

  • 2022-12-23
  • 2021-09-10
  • 2021-07-28
  • 2021-10-13
  • 2022-12-23
  • 2021-09-20
  • 2021-11-28
猜你喜欢
  • 2022-12-23
  • 2021-09-21
  • 2022-12-23
  • 2021-12-20
  • 2021-08-12
  • 2021-09-03
  • 2022-12-23
相关资源
相似解决方案