又是一个面试题。

解决方案 »

  1.   

    简单一点就是
    bootstrap class loader
    system class loader
    user class loader
    并且上面loader具有高的优先级
    基本步骤装载,连接,初始化
    深入java虚拟机上讲的相当详细了
      

  2.   

    编译器加载类要依靠classloader,   而classloader有3个级别,从高到低分别是BootClassLoader(名字可能不准确)   ,   ExtClassLoader,   AppClassLoader.这3个加载器分别对应着编译器去寻找类文件的优先级别和不同的路径:BootClassLoader对应jre/classes路径,是编译器最优先寻找class的地方
    ExtClassLoader对应jre/lib/ext路径,是编译器次优先寻找class的地方
    AppClassLoader对应当前路径,所以也是编译器默认找class的地方