java类加载进方法区七个阶段
加载、验证、准备、解析、初始化、使用、卸载
JVM类加载器种类
启动类加载器、扩展类加载器、应用程序类加载器
java类加载双亲委派机制
应用程序类加载器的父为扩展类加载器 ,扩展类加载器的父为启动类加载器;采用向上询问父是否加载过,向下尝试加载的方式,实现了JRE自定义类只能加载一份不能被修改,解决项目安全问题
SPI
JDBC就是采用的SPI的机制破坏双亲委派机制,JRE内部仅定义了JDBC接口,实现JDBC接口是通过引入mysql jar包,利用线程上下文类加载器,具体是JVM创建Runner类就将应用程序类加载器保存进线程上下文加载器
tomcat破坏双亲委派机制
tomcat软件有一个common类加载器概念,catalina类加载器、share类加载(引入的jar包)是common概念的实现类加载器