Android smail变量对照表

来源:互联网 发布:珠海生活 知乎 编辑:程序博客网 时间:2024/06/09 13:18

   

      从别人的一篇文章里面扣的,放这里备查

原始类型

  1. void (只能用于返回值类型) 
  2. boolean 
  3. byte 
  4. short 
  5. char 
  6. int 
  7. long 
  8. float 
  9. D Double 

对象类型

  1. Lpackage/name/ObjectName; 相当于java中的package.name.ObjectName  

L 表示这是一个对象类型

package/name 该对象所在的包

ObjectName 对象名称

; 标识对象名称的结束

数组的表示

[I 表示一个int型的一维数组,相当于int[];

增加一个维度增加一个[,如[[I表示int[][]

数组每一个维度最多255个;

对象数组表示也是类似,如String数组的表示是[Ljava/lang/String

寄存器与变量

java中变量都是存放在内存中的,android为了提高性能,变量都是存放在寄存器中的,寄存器为32位,可以支持任何类型,其中long和double是64为的,需要使用两个寄存器保存。

寄存器采用v和p来命名

v表示本地寄存器,p表示参数寄存器,关系如下

如果一个方法有两个本地变量,有三个参数

  1. v0 第一个本地寄存器 
  2. v1 第二个本地寄存器 
  3. v2 p0 (this
  4. v3 p1 第一个参数 
  5. v4 p2 第二个参数 
  6. v5 p3 第三个参数 

当然,如果是静态方法的话就只有5个寄存器了,不需要存this了。

.registers 使用这个指令指定方法中寄存器的总数

.locals 使用这个指定表明方法中非参寄存器的总数,放在方法的第一行。


0 0
原创粉丝点击