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

深圳哪些公司需要做网站网络工程师报名入口

深圳哪些公司需要做网站,网络工程师报名入口,中企动力邮箱官方网站,wordpress相关推荐代码Class文件结构总结 根据 Java 虚拟机规范#xff0c;Class 文件通过 ClassFile 定义#xff0c;有点类似 C 语言的结构体。我们之前都是使用javap命令来对字节码文件进行反编译查看的#xff0c;我们可以使用WinHex软件#xff08;Mac平台可以使用010 Editor#xff09;来…Class文件结构总结 根据 Java 虚拟机规范Class 文件通过 ClassFile 定义有点类似 C 语言的结构体。我们之前都是使用javap命令来对字节码文件进行反编译查看的我们可以使用WinHex软件Mac平台可以使用010 Editor来以十六进制查看字节码文件。 通过分析ClassFile的内容我们可以知道Class文件的组成如下 下面这张图是通过 IDEA 插件 jclasslib 查看的你可以更直观看到 Class 文件结构。 使用 jclasslib 不光可以直观地查看某个类对应的字节码文件还可以查看类的基本信息、常量池、接口、属性、函数等信息。 魔数(Magic Number) 首先我们可以看到前4个字节共32位组成了魔数其实就是表示这个文件是一个JVM可以运行的字节码文件除了Java以外其他某些文件中也采用了这种魔数机制来进行区分这种方式比直接起个文件扩展名更安全 字节码文件的魔数为CAFEBABE Class文件版本号 面4个字节存储的是字节码文件的版本号注意前两个是次要版本号现在基本都不用了都是直接Java8、Java9这样命名了后面两个是主要版本号这里我们主要看主版本号比如上面的就是34注意这是以16进制表示的我们把它换算为10进制后得到的结果为34 - 3*16 4 52其中52代表的是JDK8编译的字节码文件51是JDK7、50是JDK6、53是JDK9以此类推 注意jdk版本号是向下兼容的 常量池 紧接着主次版本号之后的是常量池常量池的数量是 constant_pool_count-1常量池计数器是从 1 开始计数的将第 0 项常量空出来是有特殊考虑的索引值为 0 代表“不引用任何一个常量池项”。 常量池主要存放两大常量字面量和符号引用。字面量比较接近于 Java 语言层面的的常量概念如文本字符串、声明为 final 的常量值等。而符号引用则属于编译原理方面的概念。包括下面三类常量 类和接口的全限定名 字段的名称和描述符 方法的名称和描述符 常量池中每一项常量都是一个表这 14 种表有一个共同的特点开始的第一位是一个 u1 类型的标志位 -tag 来标识常量的类型代表当前这个常量属于哪种常量类型。 类型标志描述CONSTANT_Utf8_info1UTF-8编码格式的字符串CONSTANT_Integer_info3整形字面量第一章我们演示的很大的数字实际上就是以字面量存储在常量池中的CONSTANT_Class_info7类或接口的符号引用CONSTANT_String_info8字符串类型的字面量CONSTANT_Fieldref_info9字段的符号引用CONSTANT_Methodref_info10方法的符号引用CONSTANT_MethodType_info16方法类型CONSTANT_NameAndType_info12字段或方法的部分符号引用 访问标志(Access Flag) 在常量池结束之后紧接着的两个字节代表访问标志这个标志用于识别一些类或者接口层次的访问信息包括这个 Class 是类还是接口是否为 public 或者 abstract 类型如果是类的话是否声明为 final 等等。 类访问和属性修饰符: 我们自定义了一个类然后进行javap反编译得到的访问标志 当前类This Class、父类Super Class、接口Interfaces索引集合 Java 类的继承关系由类索引、父类索引和接口索引集合三项确定。类索引、父类索引和接口索引集合按照顺序排在访问标志之后 类索引用于确定这个类的全限定名父类索引用于确定这个类的父类的全限定名由于 Java 语言的单继承所以父类索引只有一个除了 java.lang.Object 之外所有的 Java 类都有父类因此除了 java.lang.Object 外所有 Java 类的父类索引都不为 0。 类的全限定名Fully Qualified Class Name是在编程中一个类的完整名称包括其所在的包package名称。例如如果有一个类Example在com.example包中那么这个类的全限定名就是com.example.Example。 接口索引集合用来描述这个类实现了那些接口这些被实现的接口将按 implements (如果这个类本身是接口的话则是extends) 后的接口顺序从左到右排列在接口索引集合中。 字段表集合Fields 字段表field info用于描述接口或类中声明的变量。字段包括类级变量以及实例变量但不包括在方法内部声明的局部变量。 field info(字段表) 的结构: access_flags: 字段的作用域public ,private,protected修饰符是实例变量还是类变量static修饰符,可否被序列化transient 修饰符,可变性final,可见性volatile 修饰符是否强制从主内存读写。 name_index: 对常量池的引用表示的字段的名称 descriptor_index: 对常量池的引用表示字段和方法的描述符 attributes_count: 一个字段还会拥有一些额外的属性attributes_count 存放属性的个数 attributes[attributes_count]: 存放具体属性具体内容。 上述这些信息中各个修饰符都是布尔值要么有某个修饰符要么没有很适合使用标志位来表示。而字段叫什么名字、字段被定义为什么数据类型这些都是无法固定的只能引用常量池中常量来描述。 方法表集合Methods methods_count 表示方法的数量而 method_info 表示方法表。 Class 文件存储格式中对方法的描述与对字段的描述几乎采用了完全一致的方式。方法表的结构如同字段表一样依次包括了访问标志、名称索引、描述符索引、属性表集合几项。 method_info(方法表的) 结构: 方法表的 access_flag 取值 注意因为volatile修饰符和transient修饰符不可以修饰方法所以方法表的访问标志中没有这两个对应的标志但是增加了synchronized、native、abstract等关键字修饰方法所以也就多了这些关键字对应的标志 属性表集合Attributes 在 Class 文件字段表方法表中都可以携带自己的属性表集合以用于描述某些场景专有的信息。与 Class 文件中其它的数据项目要求的顺序、长度和内容不同属性表集合的限制稍微宽松一些不再要求各个属性表具有严格的顺序并且只要不与已有的属性名重复任何人实现的编译器都可以向属性表中写 入自己定义的属性信息Java 虚拟机运行时会忽略掉它不认识的属性。
http://www.pierceye.com/news/593920/

相关文章:

  • 深圳做二维码网站建设自己做的美食在哪个网站上卖
  • 论论坛坛网网站站建建设设viewjs wordpress
  • 襄阳定制型网站开发昆明网站开发推广公司
  • 做视频怎样传到网站ip域名查询
  • 天台建设局网站恒一信息深圳网站建设公司2
  • 珠海网站怎样建设网页设计相关网站
  • 网站推广服务好公司排名山西网站建设免费
  • 金乡县网站建设曲靖建设局网站
  • 唐山制作网站的公司深圳市做网站知名公司
  • 深圳方维网站建设公司全面启动门户网站建设
  • 住房和城乡建设部网站证书查询企业推广产品有什么平台好
  • 建立企业网站的目的手机排行榜软件
  • 自己做网络棋牌网站流程wordpress 自定义数据库
  • 北京网站建设厂家个人养老保险
  • 办公室门户网站建设和管理工作360排名优化工具
  • 楚天网站建设合同蜘蛛云建网站怎样
  • 建设一个小说网站企业网站 数据库设计
  • 最简单的网站开发软件有哪些ui设计外包
  • 网站主页排版重庆装修公司排名前十名
  • 网站建设得花多钱设计网站的软件
  • 辽阳企业网站建设团队网络营销与直播电商课程
  • 枣庄网站建设电话临沂广润网站建设
  • 长春市制作网站费用郑州网站专业制作
  • 婚恋网站排名前十名淘宝客网站开发一个
  • 泰国网站的域名物流公司哪家便宜又好
  • 找工作的平台seo第三方点击软件
  • 青岛市建设监理协会网站网站开发工作量评估
  • 深圳网站设计与制作公司德州万企互联网站制作
  • 制作一个链接网站400电话网站模板
  • 网站建设网站网站建设网站濮阳网站建设网站