首页 > 代码库 > jvm1
jvm1
字节码常量池:
01开头的说明是一个utf-8编码的常量,那么后面就一定要跟两个字节也就是四位16进制的数,来表示这个常量占几个字节,然后后面再跟与这个字节数对应长度的utf-8编码的字符串。之所以一共有三项,这是由01类型,也就是utf-8编码的这个类型在总共12种数据类型中的性质决定的,其他11中类型,第一项是说明是12项中的哪一项,第二项是指向01类型的第几个常量(这个排序在u2类型的计数器中显示),第三项(如果有的话)也是这样的指向。所以说01是根本,是基础,其他的11项都只要一个标志符,再加上一个指向01的序号就可以了。
如上二图,第一张图:开始的两个字节是23==》35,35-1=34个常量。再往后,是07开头的,说明是类名,后面的两个字节值是2,就是指向常量池的第二个常量。再往下,第二个常量就是01开头,表明是utf-8编码的字符常量,01后面的两个字节是字符串的长度:36,所以往后的36位就是一串字符串。以后的码同理。
jvm1
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。