博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
类文件结构
阅读量:4939 次
发布时间:2019-06-11

本文共 780 字,大约阅读时间需要 2 分钟。

五、类文件结构

代码编译的结果从本地机器码变为字节码

JAVA编译器可以把java代码编译成存储字节码的Class文件

Class文件是一组以8位字节为基础单位的二进制流,是一种类似C语言结构体的伪结构,只有两种数据类型:无符号数和表

 

Class文件的组成

1.魔数 身份识别  +版本号

2.常量池 与其他项目关联最多、占据空间最大、class中第一个出现的表类型的数据项目 主要存放两大类常量:字面量和符号引用

2.1字面量一般指字符串常量、final变量等

2.2符号引用包含类和接口的全限定名、字段的名称和描述符、方法的名称和描述符

ps java代码是在JVM加载类的时候动态链接的!

3.访问标志

这个class是类还是接口,是否是public或者abstract或final

4.类索引(确定类的全限定名)、父类索引(确定父类的全限定名)、接口索引(描述这个类实现了哪些接口)

由这三项来确定类的继承关系

5.字段表的集合(描述接口或类中声明的变量不包含方法中的变量)

6.方法表的集合(不包含方法中的代码 代码存在属性表的code属性中)

7.属性表集合

7.1code java方法体中的代码经javac编译后的字节码存放在code属性中

7.2Exception 方法中可能抛出的异常

7.3 LineNumberTable Java 源码行号与字节码行号对应关系

7.4LocalVariableTable 栈帧中局部变量表与源码中定义的变量之间的关系

7.5SourceFile 生成该class文件的源码文件名称

7.6ConstantValue 通知虚拟机自动为静态变量赋值

7.7Inner Class 内部类与宿主类之间的关联

转载于:https://www.cnblogs.com/luyu1993/p/7145667.html

你可能感兴趣的文章
搭建交叉调试环境 arm-linux-gdb配合gdbserver
查看>>
使用Jsoup 抓取页面的数据
查看>>
使用命令批量对文件中出现的字符串进行替换
查看>>
C#获取URL参数值
查看>>
Struts 框架 之 文件上传下载案例
查看>>
【重走Android之路】【路线篇(二)】知识点归纳
查看>>
graphviz入门
查看>>
tomcat 系统架构与设计模式 第二部分 设计模式 转
查看>>
scanf中的%[^\n]%*c格式
查看>>
启动Eclipse报Initializing Java Tooling错误解决方法
查看>>
用jquery来实现类似“网易新闻”横向标题滑动的移动端页面
查看>>
(原)基于物品的协同过滤ItemCF的mapreduce实现
查看>>
CSS可以和不可以继承的属性
查看>>
eclipse每次当我按ctrl+鼠标点击代码,自动关闭,产生原因及解决办法!!
查看>>
hbase
查看>>
用PHP将Unicode 转化为UTF-8
查看>>
HDOJ1002 A+B Problem II
查看>>
ADB server didn't ACK(adb不能开启
查看>>
Python基础(三)
查看>>
Continuous integration
查看>>