第六章 Javaclass文件
1. class文件表:
A.magic(魔数)——4个字节
B.minor-version和major-version(主次版本号)——4个字节
C.constant_pool_count 和constant_pool 常量池:储存了诸如文字字符串,final变量值,类名和方法名的常量,constant_pool_count计数在列表constant_pool之前,它的数值为constant_pool中数量+1.
在动态连接的java程序中,常量池还可以容纳:
l 类和接口的全限定名
l 字段的名称和描述符
l 方法的名称和描述符
字段是类或接口的实例变量或者类变量。字段的描述符是一个指示字段的类型的字符串,方法的描述符也是一个字符串,该字符串指示方法的返回值和参数的数量、顺序和类型。
D.access_flags:文件中定义的类和接口的几段信息。如它的修饰符,公有还是抽象,类型是final还是不是。
E.this_class——2个字节,它是一个对常量池的索引,在this_class位置的常量池入口必须为CONSTANT_Class_info。该表有两部分组成——标签和name_index.标签部分是一个具有CONSTANT_Class值的常量,在name_index位置的常量池入口为一个包含类和接口全限定名的CONSTANT_Utf8_info表

F.Super_class——2个字节:也是一个常量池的索引。这个super_class位置的常量池入口是一个指向该类超类的全限定名的CIONSTANT_Class_info入口。
G.interfaces_count和interfaces:在文件中该类直接实现或者有接口所扩展的父接口的数量,他们按照从左到右的顺序出现到一个数组中。
H.fields_count和fields:文件中对该类或者接口的中所声明的字段的描述
fields_count是类变量和实例变量的字段的总数量,此中不包含父类或者父接口中的字段
J.methords_count和methord:文件中对该类或者接口的中所声明的方法的描述
K.attributes_count和attributes:class文件的最后部分是属性
分享到:
相关推荐
6. **跨平台性**:Java的一个重要特性就是“编写一次,到处运行”(Write Once Run Anywhere, WORA),这得益于Java的运行机制——Java程序被编译成字节码(Bytecode),然后由Java虚拟机(JVM)解释执行。...
2023年的"Java 基础 第1阶段:基本语法——尚硅谷学习笔记(含面试题)"涵盖了从环境搭建到程序设计的基本要素,旨在帮助学习者系统地理解并应用Java语言。 一、Java环境搭建 在开始Java编程之前,你需要安装Java ...
这些字节码文件可以被任何支持Java的平台上的Java虚拟机(JVM)解释执行。 2. **执行 JAVA 字节码**:JVM加载并解释执行字节码文件。这一过程包括了类的加载、链接和初始化等步骤。 3. **计算机编译一个 java 程序...
Java程序的运行依赖于Java虚拟机(JVM),这意味着只要目标系统安装了相应的JVM,Java程序就能在其上运行。这种特性确保了Java“一次编写,到处运行”的跨平台性。 - **开发步骤**: 1. **编写源文件**:使用`.java`...
2. **JRE(Java运行时环境)**:包含Java虚拟机(JVM)、类库和其他支持文件,允许在没有安装JDK的计算机上运行Java应用程序。 #### 二、Java语言特性 Java是一种面向对象的编程语言,具备以下特点: 1. **简单性...
通常情况下,一个进程至少包含一个线程,而Java虚拟机默认有两个线程:主线程`main`和垃圾回收线程`GC`。 #### 二、并发与并行 - **并发**:指在同一时间段内,有多个程序(任务)同时处于已启动到未完成的状态。...
c#学习笔记(1) 51099在线学习网发布 文章来源:网络收集 发布时间:2006-05-25 字体: [大 中 小] 51099在线学习网 http://www.51099.com 1, 结构(struct) 与 类(class) [attributes] [modifiers] struct ...
在给定的压缩包文件中,我们可以看到两个关键文件——`main.java`和`README.txt`。这很可能是某个Java编程项目的一部分,其中`main.java`是包含主要程序逻辑的源代码文件,而`README.txt`通常用于提供项目说明、使用...