编译到执行
编译器将 robot.java 源文件编译为 robot.class 字节码文件,ClassLoader 将字节码转化为 JVM 的 class<robot> 对象,JVM 再将 class<robot > 对象实例为 robot 对象
Start
classloader 负责将 Class 文件里的二进制数据装载进系统,然后交给 java 虚拟机进行连接,初始化等操作。
ClassLoader : BootStrapLoader :c++ 编写,加载核心库 java*
ExclassLoader:Java 编写,加载扩展库 Javax.*
AppClassLoader:java 编写,加载程序所在目录
自定义 ClassLoader:java 编写,定制化加载(这个讲得多点)
classLoader 的双亲委派机制:检测: 上面四个 classLoader 从最底下到上面检测类是否已经加载 , 加载 : 从上到下尝试加载类,
视频有自定义 classLoader 源码
使用双亲委派机制去加载类的原因:避免多份同样字节码的加载