`
baoxiaofei
  • 浏览: 33463 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

每天学一点:java虚拟机7

    博客分类:
  • JAVA
阅读更多
Class文件:
access_flags:
access_flags为两个字节,紧跟常量池,展示了文件中定义的类或接口的几段信息。
access_flags中所有未使用的位都必须有编译器置0,而且java虚拟机必须忽略它。

this_class:
两个字节,他是一个对常量池的索引。this_class位置的常量池入口必须为CONSTANT_Class_info标。该表由两部分组成:一个标签和name_index。
标签:一个具有CONSTANT_Class值的常量,name_index位置的常量池入口为一个包含了类或接口权限定名的CONSTANT_Utf8_info表。
this_class指示一个指向常量池的索引。

super_class:
两个字节的常量池索引:一个指向该类超类全限定名的CONSTANT_Class_info入口。
对于Object类,super_class的值为0,对于接口,常量池入口super_class位置的项为java.lang.Object。

interfaces_count、interfaces
在文件中由该类直接实现或者由该接口所扩展的父接口的数量。这个技术后面,是名为interfaces的数组,包含了对每个由该类或者接口直接实现的父接口的常量池索引。
超类按照在implements子句和extends子句汇总出现的顺序(从左到右)在这个数据中显现。

fields_count、fields
首先是名为fields_count的计数,它是类变量和实例变量的字段的数量总和。
在fields列表中,不列出超类或者父接口继承而来的字段。
每个field_info表都展示一个字段的信息,如果该字段被声明为final,field_info表还会展示其常量值。

methods_count和methods
首先是名为methods_count的计数。双字节,对该类或者接口中声明的所有方法的总计数,从超类或者父接口汇总继承的方法不被计入。

attributes_count、attributes
给出了该文件中类或者接口所定义的属性的基本信息。每个attribute_info的第一项是指向常量池中CONSTANT_Utf8_info表的索引。

特殊字符串:
常量池中容纳的符号引用包括三种特殊的字符串:权限定名、简单名称、描述符。
所有的符号引用都包括类或者接口的全限定名。
分享到:
评论

相关推荐

    编码巧克力:每天的编码:chocolate_bar:,每天一点也不有害,对财富也有好处

    7. **JVM**:Java虚拟机是Java程序的运行环境,理解其内存模型、类加载机制和垃圾回收原理有助于优化代码性能。 8. **Spring框架**:作为Java企业级应用的主流框架,Spring涵盖了依赖注入、AOP(面向切面编程)、...

    [21天学通JAVA]+程序员羊皮卷(高清版)

    为了实现这一点,JAVA定义了一套自己的运行时环境,即JVM(JAVA虚拟机),它可以将JAVA代码转换为对应平台上的机器码,从而使JAVA程序能够在不同平台之间无缝迁移。此外,JAVA在企业级应用开发、移动应用开发、大...

    Java程序员面试题与经验工与总结.docx

    本文总结了 Java 程序员面试中常见的知识点和经验总结,涵盖了 Java 基础、多线程、IO 与 NIO、虚拟机、设计模式、数据结构与算法、计算机网络、操作系统、主流框架、数据存储、分布式系统等方面的知识点。...

    蒙古包:高质量已安装的真实(e)状态

    Clojure是一种静态类型的函数式编程语言,它运行在Java虚拟机(JVM)上,同时也支持JavaScript和其他平台。ClojureClojure是Clojure社区的简称,代表使用Clojure进行开发的项目和开发者群体。 蒙古包(Yurt)的命名...

Global site tag (gtag.js) - Google Analytics