Class文件和Dex文件

Class文件的基本概念:

能够被jvm识别,加载并执行的文件格式。



class文件的作用:

记录一个类文件的所有信息,记住是所有信息

class文件的结构:

  是一种8位字节的二进制流文件

   各个数据按顺序紧密的排列,无间隙

每个类或接口都独占一个class文件


在这张图中,每一行表示两个字节长度,按照从上到下、从左到右的顺序描述了class文件的结构。其中,浅颜色的部分是无符号数,深颜色的部分是表。下面以表格的形式详细描述一下具体的信息:

类型

名称

数量

U4

magic(加密段)

1

U2

minor_version(最新JDK版本)

1

U2

major_version(当前版本)

1

U2

constant_pool_count(常量池数量)

1

cp_info

constant_pool

constant_pool_count-1

U2

access_flags(权限)

1

U2

this_class

1

U2

super_class

1

U2

interfaces_count

1

U2

interfaces(直接继承接口)

interfaces_count

U2

fields_count

1

field_info

fields(所以成员变量)

fields_count

U2

methods_count

1

method_info

methods()

methods_count

U2

attributes_count

1

attribute_info

attributes(类属性)

attributes_count


常量池

记录基本数据类型

记录的是索引,最后还是知道基本数据类型

class文件的弊端:

内存占用大,不适合移动端

堆栈的加栈模式,加载速度慢

文件IO操作多,类查找慢

dex文件:

生成:


执行:


dex文件的作用:

    记录整个工程中所有类文件的信息,记住是整个工程

文件结构:

是一种8为字节的二进制流文件

各个数据按顺序紧密的排列,无间隙

整个应用中所有的Java源文件都放在一个dex文件中




class文件和dex文件的区别:

本质上他们是一样的,dex文件是从class文件演变而来的

class文件存在许多冗余信息,dex会去除冗余,并整合


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值