android类加载

1.什么是双亲委派(本质就是个递归调用的流程)

    a:android在加载.class文件的时候,我们都知道是通过classLoader进行加载的,但是classLoader也是有很多类型的,它会每级递归向上委托给父类加载器classLoader进行加载,如果加载过,就不再加载

       (CustomClassLoader->PathClassLoader->BootClassLoader):比如我们创建了CustomClassLoader时,如果没有在它构造方法中传递父classLoader,它内部无参构造会自动加载PathClassLoader,而PathClassLoader

       的构造中又会传入最顶级的ClassLoader(PathClassLoader)

   b:如果父类没有加载过,就继续向上委托给父加载器进行加载,一直委托到这条线路的顶级,如果还没加载就尝试加载,如果加载失败,就逐级往回向下交还给调用者来进行加载

2.双亲委派的作用

   a:防止一个.class文件被重复调用

   b:对于任意一个类确保在虚拟机中的唯一性

   c:保证系统类.class不会被篡改,通过委托方式可以保证系统类的加载脱机不会被篡改.

3.android中主要的类加载器

   a:PathClassLoader

   b:DexClassLoader

   c:BaseDexClassLoader

   d:BootClassLoader

4.类加载常用的两种方式

   a:Class.forName()方法动态加载

   b:ClassLoader.loadClass()方法动态加载

5.类加载的步骤

   装载(load) -> 链接->初始化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值