JVM14_Class文件结构细节、魔数、Class文件版本、常量池、访问标识(或标志)、类索引|父类索引|接口索引集合、字段|方法|属性表集合(六)

简介: ⑨. 属性表集合

⑨. 属性表集合


  • ①. 属性计数器:attributes_count的值表示当前class文件属性表的成员个数。属性表中每一项都是一个attribute_info结构


  • ②. 属性的通用格式


微信图片_20220107133832.png


③. Code属性


(Code属性就是存放方法体里面的代码。但是,并非所有方法表都有Code属性。像接口或者抽象方法,他们没有具体的方法体,因此也就不会有Code属性了)


Code属性表的结构,如下图:


微信图片_20220107133848.png


④. LineNumberTable属性


LineNumberTable 属性是可选变长属性,位于 Code结构的属性表


LineNumberTable属性是用来描述Java源码行号与字节码行号之间的对应关系。这个属性可以用来在调试的时候定位代码执行的行数(start_pc,即字节码行号;line_number,即Java源代码行号)


在 Code 属性的属性表中,LineNumberTable 属性可以按照任意顺序出现,此外,多个 LineNumberTable属性可以共同表示一个行号在源文件中表示的内容,即 LineNumberTable 属性不需要与源文件的行一 一对应


微信图片_20220107133915.png


⑤.LocalVariableTable属性


(LocalVariableTable 是可选变长属性,位于 Code属性的属性表中。它被调试器用于确定方法在执行过程中局部变量的信息。在 Code 属性的属性表中,LocalVariableTable 属性可以按照任意顺序出现。Code 属性中的每个局部变量最多只能有一个 LocalVa riableTable 属性)


微信图片_20220107133935.png


⑥. SourceFile属性


微信图片_20220107133950.png




相关文章
|
10天前
|
安全 Java
JVM的类的生命周期
JVM的类的生命周期
|
13天前
|
存储 安全 Java
JVM之本地方法栈和程序计数器和堆
JVM之本地方法栈和程序计数器和堆
13 0
|
20天前
|
存储 监控 安全
JVM工作原理与实战(五):类的生命周期-加载阶段
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了类的生命周期、类的加载阶段等内容。
28 5
|
2月前
|
算法 Java
JVM中判断对象是否需要回收的方法
JVM中判断对象是否需要回收的方法
|
3月前
|
安全 Java 程序员
深入理解jvm - 类加载过程
深入理解jvm - 类加载过程
50 0
|
3月前
|
存储 Java 编译器
深入理解JVM - 类文件结构
深入理解JVM - 类文件结构
58 1
|
4月前
|
缓存 安全 前端开发
JVM(类的加载与ClassLoader、双亲委派机制)
JVM(类的加载与ClassLoader、双亲委派机制)
|
4月前
|
Java 应用服务中间件
jvm性能调优实战 - 45无限制的调用方法导致栈溢出OOM
jvm性能调优实战 - 45无限制的调用方法导致栈溢出OOM
44 0
|
4月前
|
安全 IDE Java
jvm性能调优实战 - 44Metaspace区域是如何因为类太多而发生内存溢出OOM
jvm性能调优实战 - 44Metaspace区域是如何因为类太多而发生内存溢出OOM
148 0
|
5月前
|
算法 Java 程序员
[JVM] 字节二面~简述垃圾回收以及类加载过程,别说八股文,我想看到你自己的理解
[JVM] 字节二面~简述垃圾回收以及类加载过程,别说八股文,我想看到你自己的理解