java classloader是什么,让我们一起了解一下?
ClassLoader就是用来动态加载class文件到内存当中用的,通过Java的类加载机制来动态加载某个class文件到内存当中的,从而只有class文件被载入到了内存之后,才能被其它class所引用。
classloader(类加载器)的主要工作是什么?
就是把类文件加载到JVM中。
1、加载:定位要加载的类文件,并将其字节流装载到JVM中。
2、链接:给要加载的类分配最基本的内存结构保存其信息,比如属性,方法以及引用的类。
在该阶段,该类还处于不可用状态。
(1)验证:对加载的字节流进行验证,比如格式上的,安全方面的。
(2)内存分配:为该类准备内存空间来表示其属性,方法以及引用的类。
(3)解析:加载该类所引用的其它类,比如父类,实现的接口等。
3、初始化:对类变量进行赋值。
那么类加载器是如何实现的?
当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构:
bootstrap classloader extension classloader system classloader
bootstrap classloader -引导(也称为原始)类加载器,它负责加载Java的核心类。在Sun的JVM中,在执行java的命令中使用-Xbootclasspath选项指定附加的类。这个加载器的是非常特殊的,它实际上不是 java.lang.ClassLoader的子类,而是由JVM自身实现的。大家可以通过执行以下代码来获得bootstrap classloader加载了那些核心类库:
URL[] urls=sun.misc.Launcher.getBootstrapClassPath().getURLs(); for (int i = 0; i < urls.length; i++) { System.out.println(urls.toExternalform()); }
以上就是小编今天的分享了,希望可以帮助到大家。