2 字节码文件的组成

2 字节码文件的组成

  • 基础信息

    魔数(文件的类型)、字节码文件对应的java版本号访问标识(public、final等)、父类和接口

  • 常量池

    保存了字符串常量、类和接口名、字段名,主要保存在字节码指令中使用

    常量池避免相同的内容重复定义,节约空间。例如:

    String str1 = "I love you";

    String str2 = "I love you";

  • 字段

    例如:private final static int a1 = 0整个就是一个字段

  • 方法

    将接口或者类中方法转化为字节码指令

    //例:i++,j=j+1,k+=1 所需要的指令数
    public class test1 {
    public static void main(String[] args) {
      int i = 0, j = 0, k = 0;
      //i++只需要一条指令
      i++;
      //j=j+1需要4条指令
      j = j + 1;
      //k+=1也只需要一条指令
      k += 1;
      
    }
    }
    
    //上面java代码对应字节码
    0 iconst_0
    1 istore_1
    2 iconst_0
    3 istore_2
    4 iconst_0
    5 istore_3
    6 iinc 1 by 1
    9 iload_2
    10 iconst_1
    11 iadd
    12 istore_2
    13 iinc 3 by 1
    
  • 属性

    类的属性,比如源代码的文件名、内部类的列表等。例如:Hello.java为源代码的文件名,也是类的属性

posted @ 2024-03-05 15:37  渺阴丶  阅读(31)  评论(0)    收藏  举报