JVM:字节码文件

文章目录

一、Java虚拟机的组成

二、字节码文件的组成

1、基本信息

魔数、字节码文件对应的Java版本号访问标识(public final等等)父类和接口。

2、常量池

保存了字符串常量、类或接口名、字段名主要在字节码指令中使用。

  • 常量池中的数据都有一个编号,编号从1开始。在字段或者字节码指令中通过编号可以快速的找到对应的数据。
  • 字节码指令中通过编号引用到产量池的过程称为符号引用。

3、字段

当前类或接口声明的字段信息。

  • 字节码中的方法区域是存放字节码指令的核心位置,字节码指令的内容存放在方法的Code属性中。

4、方法

当前类或接口声明的方法信息字节码指令

5、属性

类的属性、比如源码的文件名内部类的列表等。

三、常用的字节码工具

1、javap -v 命令

  • javap是JDK自带的反编译工具,可以通过控制台查看字节码文件内容。适合在服务器上查看字节码文件内容。
  • 直接输入javap查看所有参数。
  • 输入javap -v 字节码文件名称查看具体的字节码信息。(如果jar包需要先使用jar -vxf命令解压)。

2、jclasslib插件

  • jclasslib也有idea插件版本,建议开发时使用idea插件版本,可以在代码编译之后实时看到字节码文件内容。

3、阿里arthas

  • Arthas是一款线上监控诊断产品,通过全局视角实时查看应用load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,大大提升线上问题排查效率。
  • 官网:https://arthas.aliyun.com/doc/quick-start.html
  • dump 类的权限定名:dump已加载类的字节码文件到特定目录。
  • jad 类的权限定名:反编译已加载的源码。
相关推荐
小梁不秃捏5 小时前
JVM 类加载器深度解析(含实战案例)
jvm·类加载器
Anarkh_Lee11 小时前
图解JVM-2. 类加载子系统
java·jvm·后端
ashane131411 小时前
JVM篇:内存分区及作用及各部分可能发生的异常
jvm
舰长11513 小时前
快速定位并优化CPU 与 JVM 内存性能瓶颈
jvm
小梁不秃捏14 小时前
JVM类加载过程详解:从字节码到内存的蜕变之旅
java·jvm·类加载
小梁不秃捏15 小时前
JVM类文件结构深度解析:跨平台基石与字节码探秘
java·jvm·类文件
lavins17 小时前
android studio kotlin项目build时候提示错误 Unknown Kotlin JVM target: 21
jvm·kotlin·android studio
amber66666!1 天前
jvm相关问题 - 基于c老师
jvm
Mr.朱鹏2 天前
针对Feign客户端请求体参数处理问题
java·jvm·spring boot·spring·spring cloud·maven·intellij-idea
Y编程小白2 天前
JVM的类加载器
jvm