9-12

作者: 汪之涛 | 来源:发表于2017-09-12 22:49 被阅读0次

    今天来看Android中的ClassLoader

    ClassLoader结构图

    当你第一次听说各种ClassLoader的时候,是不是觉得每种ClassLoader都是相互独立的部分,需要的时候调用即可,但是实际在Android系统中,可以看到ClassLoader采用了继承的模式,那么为什么会采用这种继承的模式呢?

    首先我们先看继承模式能给我们带来什么?

    在上面场景中,继承模式最大的不同就是能够拥有上层父类的方法,那么ClassLoader为什么需要?ClassLoader是用来加载Class的,我想可能的情况有两种:

    1. 本层ClassLoader加载不到。

    2. 上层已经加载过了。

    深入源码,一探究竟:

    双亲加载模式

    可以看到本层ClassLoader在找不到class的情况下确实会去找父ClassLoader,于是验证了我们的第二种想法。

    至于第一种可能,由于加载class只是给出路径即可,所以并不牵扯到权限问题。

    相关文章

      网友评论

          本文标题:9-12

          本文链接:https://www.haomeiwen.com/subject/mimhsxtx.html