我们的java程序其实是由若干个.class文件组成。当程序在运行时,就会调用一个入口函数,即main()函数,来调用系统的相关功能,而这些功能都被封装在不同的class文件中,所以经常要从这个class文件中调用另一个class文件中的方法。如果另外一个文件不存在,则会引发系统异常。而程序在启动的时候,并不会一次性加载程序所要的所有class文件,而是根据需要,通过java的类加载器(ClassLoader)来动态地加载所需的class文件到内存中,class文件只有被载入到了内存中之后,才能被其它class所引用。所以,ClassLoader就是用来动态加载class文件到内存当中的。
1、ClassLoader加载类的过程
java利用ClassLoader将类载入内存,并且在同一应用中,可以有多个ClassLoader,通过委派机制,把装在的任务传递给上级的装载器,依此类推,直到启动类装载器(没有上级的类装载器,处于最顶端)。如果启动类装载器能够装载这个类,那么它首先装载。如果不能,则往下传递。URLC