当前位置: 首页 > news >正文

哪家公司建设网站遵义本地网

哪家公司建设网站,遵义本地网,十大高端网站设计,无货源开店已确认违法#xff08;3#xff09;CONSTANT_Integer_info 一个常量池中的CONSTANT_Integer_info数据项, 可以看做是CONSTANT_Integer类型的一个实例。 它存储的是源文件中出现的int型数据的值。 同样#xff0c; 作为常量池中的一种数据类型#xff0c; 它的第一个字节也是一个tag值…3CONSTANT_Integer_info 一个常量池中的CONSTANT_Integer_info数据项, 可以看做是CONSTANT_Integer类型的一个实例。 它存储的是源文件中出现的int型数据的值。 同样 作为常量池中的一种数据类型 它的第一个字节也是一个tag值 它的tag值为3 也就是说 当虚拟机读到一个tag值为3的数据项时 就知道这个数据项是一个CONSTANT_Integer_info 它存储的是int型数值的值。 紧挨着tag的下面4个字节叫做bytes 就是int型数值的整型值。 它的内存布局如下 下面以示例代码进行说明 示例代码如下 package com.jg.zhang;public class TestInt {void printInt(){System.out.println(65535);} } 将上面的类生成的class文件反编译由于反编译结果较长 我们省略了大部分信息 Constant pool:....................................#21 Integer 65535....................................{....................................void printInt();flags:Code:stack2, locals1, args_size10: getstatic #15 // Field java/lang/System.out:Ljava/io/PrintStream;3: ldc #21 // int 655355: invokevirtual #22 // Method java/io/PrintStream.println:(I)V8: returnLineNumberTable:line 6: 0line 7: 8LocalVariableTable:Start Length Slot Name Signature0 9 0 this Lcom/jg/zhang/TestInt; } 上面的输出结果中 保留了printInt方法的反编译结果 并且保留了常量池中的第21项。 首先看printInt方法反编译结果中的索引为3 的字节码指令 3: ldc #21 // int 65535这条ldc指令 引用了常量池中的第21项 而第21项是一个CONSTANT_Integer_info 并且这个CONSTANT_Integer_info存储的整型值为65535 。 4CONSTANT_Float_info 一个常量池中的CONSTANT_Float_info数据项, 可以看做是CONSTANT_Float类型的一个实例。 它存储的是源文件中出现的float型数据的值。 同样 作为常量池中的一种数据类型 它的第一个字节也是一个tag值 它的tag值为4 也就是说 当虚拟机读到一个tag值为4的数据项时 就知道这个数据项是一个CONSTANT_Float_info 并且知道它存储的是float型数值。 紧挨着tag的下面4个字节叫做bytes 就是float型的数值。 它的内存布局如下 举例说明 如果源文件中的一句代码使用了一个float值 如下所示 void printFloat(){System.out.println(1234.5f);}那么在这个类的常量池中就会有一个CONSTANT_Float_info与之相对应 这个CONSTANT_Float_info的形式如下 代码反编译结果如下 Constant pool:............. .............#29 Float 1234.5f............ ............{............ ............void printFloat();flags:Code:stack2, locals1, args_size10: getstatic #15 // Field java/lang/System.out:Ljava/io/PrintStream;3: ldc #29 // float 1234.5f5: invokevirtual #30 // Method java/io/PrintStream.println:(F)V8: returnLineNumberTable:line 10: 0line 11: 8LocalVariableTable:Start Length Slot Name Signature0 9 0 this Lcom/jg/zhang/TestInt; } 5CONSTANT_Long_info 一个常量池中的CONSTANT_Long_info数据项, 可以看做是CONSTANT_Long类型的一个实例。 它存储的是源文件中出现的long型数据的值。 同样 作为常量池中的一种数据类型 它的第一个字节也是一个tag值 它的tag值为5 也就是说 当虚拟机读到一个tag值为5的数据项时 就知道这个数据项是一个CONSTANT_Long_info 并且知道它存储的是long型数值。 紧挨着tag的下面8个字节叫做bytes 就是long型的数值。 它的内存布局如下 举例说明 如果源文件中的一句代码使用了一个long型的数值 如下所示 void printLong(){System.out.println(123456L);}那么在这个类的常量池中就会有一个CONSTANT_Long_info与之相对应 这个CONSTANT_Long_info的形式如下 代码反编译结果为 Constant pool:.............. ..............#21 Long 123456l.............. ..............{.............. ..............void printLong();flags:Code:stack3, locals1, args_size10: getstatic #15 // Field java/lang/System.out:Ljava/io/PrintStream;3: ldc2_w #21 // long 123456l6: invokevirtual #23 // Method java/io/PrintStream.println:(J)V9: returnLineNumberTable:line 7: 0line 8: 9LocalVariableTable:Start Length Slot Name Signature0 10 0 this Lcom/jg/zhang/TestInt; } 6CONSTANT_Double_info 一个常量池中的CONSTANT_Double_info数据项, 可以看做是CONSTANT_Double类型的一个实例。 它存储的是源文件中出现的double型数据的值。 同样 作为常量池中的一种数据类型 它的第一个字节也是一个tag值 它的tag值为6 也就是说 当虚拟机读到一个tag值为6的数据项时 就知道这个数据项是一个CONSTANT_Double_info 并且知道它存储的是double型数值。 紧挨着tag的下面8个字节叫做bytes 就是double型的数值。 它的内存布局如下 举例说明 如果源文件中的一句代码使用了一个double型的数值 如下所示 void printDouble(){System.out.println(123456D);}那么在这个类的常量池中就会有一个CONSTANT_Double_info与之相对应 这个CONSTANT_Double_info的形式如下 代码反编译结果为 Constant pool:.............. ..............#21 Double 123456.0d.............. ..............{.............. ..............void printDouble();flags:Code:stack3, locals1, args_size10: getstatic #15 // Field java/lang/System.out:Ljava/io/PrintStream;3: ldc2_w #21 // double 123456.0d6: invokevirtual #23 // Method java/io/PrintStream.println:(D)V9: returnLineNumberTable:line 7: 0line 8: 9LocalVariableTable:Start Length Slot Name Signature0 10 0 this Lcom/jg/zhang/TestInt; } (7) CONSTANT_String_info 在常量池中 一个CONSTANT_String_info数据项 是CONSTANT_String类型的一个实例。 它的作用是存储文字字符串 可以把他看做是一个存在于class文件中的字符串对象。 同样 它的第一个字节是tag值 值为8 也就是说 虚拟机访问一个数据项时 判断tag值为8 就说明访问的数据项是一个CONSTANT_String_info 。 紧挨着tag的后两个字节是一个叫做string_index的常量池引用 它指向一个CONSTANT_Utf8_info 这个CONSTANT_Utf8_info存放的才是字符串的字面量。 它的内存布局如下 举例说明 如果源文件中的一句代码使用了一个字符串常量 如下所示 void printStrng(){System.out.println(abcdef);}那么在这个类的常量池中就会有一个CONSTANT_String_info与之相对应 反编译结果如下 Constant pool:.............. ..............#21 String #22 // abcdef#22 Utf8 abcdef.............. ..............{.............. ..............void printStrng();flags:Code:stack2, locals1, args_size10: getstatic #15 // Field java/lang/System.out:Ljava/io/PrintStream;3: ldc #21 // String abcdef5: invokevirtual #23 // Method java/io/PrintStream.println:(Ljava/lang/String;)V8: returnLineNumberTable:line 7: 0line 8: 8LocalVariableTable:Start Length Slot Name Signature0 9 0 this Lcom/jg/zhang/TestInt; } 其中printString方法中索引为3的字节码指令ldc引用常量池中的第21项 第21项是一个CONSTANT_String_info 这个位于第21项的CONSTANT_String_info又引用了常量池的第22项 第22项是一个CONSTANT_Utf8_info 这个CONSTANT_Utf8_info中存储的字符串是 abcdef 。 引用关系的内存布局如下 总结 本文就到此为止。 最后总结一下 本文主要讲解了常量池中的五中数据项 分别为CONSTANT_Integer_info CONSTANT_Float_info CONSTANT_Long_info CONSTANT_Double_info 和CONSTANT_String_info 。 这几种常量池数据项都是直接存储的常量值而不是符号引用。 这里又一次出现了符号引用的概念 这个概念将会在下一篇博客中详细讲解 因为下一篇博客要介绍的剩下的四种常量池数据项 都是符号引用 这四种表示符号引用的数据项又会直接或间接引用上篇文章中介绍的CONSTANT_NameAndType_info和CONSTANT_Utf8_info 所以说CONSTANT_NameAndType_info是符号引用的一部分。 从本文中我们还可以知道。 虽然说CONSTANT_String_info是直接存储值的数据项 但是CONSTANT_String_info有点特别 因为它不是直接存储字符串 而是引用了一个CONSTANT_Utf8_info 这个被引用的CONSTANT_Utf8_info中存储了字符串。 最后 列出下一篇博文要介绍的剩下的四种常量池数据项 CONSTANT_Class_info CONSTANT_Fieldref_info CONSTANT_Methodref_info CONSTANT_InterfaceMethodref_info
http://wiki.neutronadmin.com/news/214536/

相关文章:

  • 现代化的中国风网站定制物品的app有哪些
  • 免费建商城网站哪个好汕头新导网络公司
  • 微信微网站开发猎头招聘网官网
  • 西安网站制作工程师线上推广策划方案范文
  • 上线了怎么建网站村庄建设网站
  • 网站建设模块一项目三电子商务网站建设实践报告摘要
  • 如何做网站美工乔拓云官网免费
  • 如何快速建网站seo网络推广公司报价
  • 番禺网站开发服务深圳门户网站
  • WordPress文档批量发布接口seo基本步骤顺序
  • 企业的做网站桂林建设银行招聘网站
  • 网站收录突然全部没有了个人可以做推广的平台有哪些
  • 东莞网站新站排名无障碍网站开发
  • 天河移动网站建设云南网站制作怎么计费
  • 音乐网站建设报告微商城网站建设推广
  • 网站的动态文字是怎么做的好的网站设计
  • 网站网站服务器青岛营销网站建设
  • 清空网站空间做网站做得好的公司有哪些
  • 建设建网站WordPress建立个人相册
  • 银川网站建设nx110常州营销网站建设
  • 哪个企业的网站做的比较好当当网的网站建设要求
  • 小企业网站模板个人音乐网站建设
  • 网站建设所需要软件机加工接单什么平台好
  • 新乡集团网站建设软文文案
  • 招聘网站建设策划书防控政策优化
  • 做健身网站开题报告可以做书的网站
  • 浙江网站建设推广公司找哪家河北健康码app官网下载
  • php做网站安性如何国内org域名的网站
  • 可以做问卷赚钱的网站网站改标题关键词描述
  • 河北省住房和城乡建设部网站首页个人合法网站怎么做