Android类加载器以及与Java类加载器区别

 我来答
西安IT优就业
2018-08-13 · TA获得超过1561个赞
知道小有建树答主
回答量:1108
采纳率:90%
帮助的人:183万
展开全部

加载的字节码不同

  • 相同的是,在程序运行时首先把描述类的数据文件(字节码)加载到内存;

  • 不同的是,Android虚拟机运行的是dex字节码,Java虚拟机运行的class字节码。
    (dex字节码:是对class文件优化的产物,不同class文件重复的东西只需保留一份。)

  • 类加载器不同以及类加载器的类体系结构不同

Android类加载器和Java的类加载器的类体系结构不一样:

Android的BootClassLoader和Java的BootStrapClassLoader区别:

  • Android虚拟机中BootClassLoader是ClassLoader内部类,由java代码实现而不是c++实现,是Android平台上所有ClassLoader的最终parent,这个内部类是包内可见,所以我们没法使用。

  • Java虚拟机中BootStrapClassLoader是由原生代码(C++)编写的,负责加载java核心类库(例如rt.jar等)  .

Android类加载器和Java的类加载器工作机制是类似的,使用双亲委托机制。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式