java类加载器一点总结及一点问题

总结:

①该方法会首先调用 findLoadedClass()方法来检查该类是否已经被加载过;如果没有加载过的话,会调用父类加载器的 loadClass()方法来尝试加载该类;如果父类加载器无法加载该类的话,就调用 findClass()方法来查找该类。因此,为了保证类加载器都正确实现代理模式,在开发自己的类加载器时,最好不要覆写 loadClass()方法,而是覆写findClass()方法。

②当加载该类的时候,会首先加载并初始化父类,然后再加载子类。

③当该Class所依赖的和引用的其他的Class也由该类加载器加载。



问题:

拿jdbc来说,根加载器会加载jdbc的api一些核心接口,然后我们在应用的时候通过Class.forName("driver名称"),来加载驱动,那么这两个不同的加载器加载的接口类型,与驱动实现类型是否会存在类型不兼容的问题呢?事实上没有这种兼容问题。思考:或许是继承不太一样吧。或许这就不是个问题。对于同个类,用两种加载器加载,两个类型必定不兼容,这是肯定的。因为标识每个类的类型的标识与包名和加载器有关系。或许继承方面的类型问题,就不存在,想多了,这里拿出来说,就是提醒以后注意下吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值