类:.class文件
类加载器:通过类的全限定名获取类的二进制字节流(虚拟机外部实现),让程序决定如何去后去所需的类
重点:不同类记载器加载的类不同,也就说通过equal()方法不等和isInstance()获取的结果不同;启动类加载器是虚拟机的一部分,其他事独立存在于虚拟机之外。
一、启动类加载器他主要是负责加载
一句话概括:当我们加载一个类的时候,先判断是否已经加载这个类。如果没有,当前类的类加载器会先去父类中找,通过类名是非存在相同的类,如果存在就不会创建。如果父类加载器反馈无法加载才会有当前类加载器来加载。例如我们编写一个Object类,就无法加载。
(类加载器之间的关系并不是继承,而是组合关系!!!)
3、破坏双亲委派 一、jdk1.2之前,不存在双亲委派机制之前。 二、自身缺点导致Java开发需要利用JNDI来整合其他厂商的服务,他需要其他厂商实现并部署在应用程序(例如JDBC,JCE…)的classpath下的JNDI服务接口,但是这些无法通过类加载器家族。我们需要加载SPI是就需要通过过Java.utile.ServiceLoader来加载类。
三、热部署导致的破坏详细看OSGI。OSGI不再是原先的树形结构加载,而是树形和网状结构结合。



