Java虚拟机之ClassLoader

来源:互联网 发布:网络借贷信息披露细则 编辑:程序博客网 时间:2024/06/05 02:22

在Java虚拟机中ClassLoader的作用就是加载类到java虚拟机中,ClassLoader最初是为了applet而实现的,所以除了启动类加载Bootstrap classloader 是在虚拟机内部实现的以外,其他类加载器都是在虚拟机外部实现的,而且也只有启动类加载是用c 实现的。(仅针对部分VM,其实在大部分VM中还是使用java语言实现的,可是在关键部分使用JNI技术调用Native方法。)


从开发人员来看,java虚拟机一般会使用到三种classloader

  1. 启动类加载器(BootStrap classloader),是在java虚拟机启动的时候,进行加载<JAVA_HOME>/lib目录中以及被-XBootclasspath参数指定的路径下的,而且能被虚拟机识别的类库,加载到java虚拟机内存中。(其中包括,)
  2. 扩展类加载器(Extension classloader):这个加载器是由sun.misc.Launcher.$ExtClassLoader实现,它负责加载<JAVA_HOME>/lib/ext目录中,或者被java.ext.dirs系统变量所指定的路径下的类库,开发者可以直接使用这个类加载器。
  3. 应用程序类加载器(Application classloader):这个加载器是由sun.misc.Launcher$AppClassLoader来实现,应用程序类加载器也叫系统类加载器,它浮在加载用户classpath下的所有类库,一般情况下,这就是程序中默认的类加载器。


自定义类加载器需要集成Classloader方法。

0 0
原创粉丝点击