读懂 Java 字节码(3)

作者: zidea | 来源:发表于2019-04-04 11:05 被阅读20次
    java-logo.jpg byte_code_01.JPG

    继续向下读取字节码

    07 00 16
    

    查表 07 类型为 CONSTANT_class_info 值为两个字节引用
    指向全限定名常量项的索引 00 16 转为 22 所以索引值为 22

     #22 = Utf8               com/zidea/test/Demo
    
    

    07 00 17
    

    07 表示和上一个常量是一样的类型 CONSTANT_class_info 引用值 23 指向

     #23 = Utf8               java/lang/Object
    
    

    01 00 01 61
    
    • 01 表示 CONSTANT_utf8_info ,00 01 表示 utf8 编码的字符串长度
    • 61 为字符 a
     #5 = Utf8               a
    
    

    01 00 01 49
    
     #6 = Utf8               I
    

    01 00 06 3C 69 6E 69 74 3E
    

    这里读取这段字节码,首先 01 表示 CONSTANT_utf8_info 类型,00 06表示长度,然后向后取 6 个字节 3C 69 6E 69 74 3E为字符 <init>

    01 00 03 28 29 30 56
    
     #8 = Utf8               ()V
    

    01 00 0F 4C 69 6E 65 4E 75 6D 62 65 72 54 61 62 6C 65
    

    01 表示 CONSTANT_utf8_info , 00 0F 表示 15 向后数 15 字符 4C 69 6E 65 4E 75 6D 62 65 72 54 61 62 6C 65 为 LineNumberTable

     #10 = Utf8               LineNumberTable
    

    相关文章

      网友评论

        本文标题:读懂 Java 字节码(3)

        本文链接:https://www.haomeiwen.com/subject/tvkfiqtx.html