如何确定jvm中的一个类的唯一性
双亲委派模型
ps: bootstrap、ext、app这三种类加载器都没有覆盖父类的findClass(name)方法,默认会直接抛出异常。所以如果想自己实现一个类加载器,一般会覆盖父类的这个方法,把自己的类加载逻辑放到这个方法中。
不符合双亲委派模型的类加载
JDBC的例子
jdbc的驱动类是一个SPI,由rt.jar中的Driver类去加载,这种场景就是bootstrap classloader请求appclassloader加载SPI;
ps: 实际项目中可能会出现多个/META-INF/service/java.sql.Driver文件,会实例化多个驱动类,那么获取数据库连接的时候到底使用哪个驱动类?