类加载器
类加载器,从高到低依次是跟加载器(BootStrapClassLoader),拓展加载器(ExtClassLoader),系统加载器(SystemClassLoader)。执行的顺序如图所示是从低到高。在java代码中我们也可以找到对应的加载器,这里我赋一段代码截图,我们可以看到根加载器的值是null,其实它并不是null,是我们没有权限获取,因为跟加载器是c++编写的。
双亲委派机制
双亲委派机制:是为了保证类的安全
运行机制是所有的类加载的时候都会先委托到父类,直到顶层也就是根加载器。然后从跟加载器开始找有没有这个类,如果有就直接加载顶层的这个类,如果没有就继续向下找,一直找到这个类为止。
这里我写一段代码举个栗子,可以看到我自己建了一个java.lang.Interger的类,然后我new了一个Integer,但是控制台报错提示我Integer中没有main方法。也就是说new的这个Integer是根加载器里的Integer