class文件全名称为Java class文件,主要在平台无关性和网络移动性方面使Java更适合网络。它在平台无关性方面的任务是:为Java程序提供独立于底层搜正主机平台的二进制形式的服务。
该文件打破了C或者C++等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被连接成单独的、专门支持特定硬件平台和 *** 作系统的二森漏野进制此喊文件。
扩展资料:
class文件径打破了C或者C++等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被连接成单独的、专门支持特定硬件平台和 *** 作系统的二进制文件。
通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作。而Java class文件是可以运行在任何支持Java虚拟机的硬件平台和 *** 作系统上的二进制文件。
.java源文件经过编译生成的.class便是字节码文件,但还不能被系统直接执行,通过JVM解释翻译后才可以被底层系统执行。
1.魔数:头四个字节,CAFEBABE
2.文件版本:java版本1.8 = 52,1.7 = 51……
3.常量池:包含两部分 -- 字面量与符号引用
① 字面量:字符串文本、用final修饰的基本数据类型的值。(如申明的:String s = "abc"中的"abc",int i = 1中的1)。大白话:字面量是在编译期间就已有确定值的数据。
② 符号引用:类、接口、方法、字段的全名与描述符。在编译时,java类并不知道引用类的实际内桐瞎乎存地址,因此只能使用符号引用来代替。在类加载器链接阶段时才替换为具体的实际内存地址,即直接引用。
4.访问标志:(类、属性、方法)的访问标志
是class还是interface,是否public,是否abstract,是否定义了final等等。
5.类/父类索引与接口索引集合
类、父局悉类、接口集合的全限定名。
6.字段表集合
声明的类变量与实例变量的描述与结构。
7.方法表集合
声明的方法的描述与结构神判。
8.属性表集合
描述class文件,字段表,方法表某些场景专有的信息。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)