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 类的权限定名:反编译已加载的源码。
相关推荐
笨蛋不要掉眼泪1 小时前
Java虚拟机:堆的参数配置
java·开发语言·jvm
zy happy1 天前
VMware虚拟机添加新的硬盘
java·linux·jvm·docker
丈剑走天涯1 天前
JVM(八) JDK8 Parallel GC
jvm
LING-Z2 天前
JVM GC 机制详解:算法、分代、回收器、GC 类型一篇讲透
java·jvm·垃圾回收
大不点wow2 天前
Java序列化与反序列化:让对象走出JVM
java·开发语言·jvm
程序员天天困2 天前
Arthas trace 命令怎么用?一行定位最慢那行代码
jvm·后端
白露与泡影3 天前
Arthas 实战指南:从方法耗时定位到 JVM 变量热修改
服务器·jvm·c#
Ai_easygo3 天前
MCP 协议实战:用 Claude Desktop 连本地 SQLite,5 分钟搭一个能查数据的 AI 助手
jvm·人工智能·sqlite
小园子的小菜4 天前
深入理解 JVM 垃圾回收:从对象判定、回收算法到经典收集器全解析
jvm·算法
孫治AllenSun4 天前
【JVM】四大引用类型分析
java·开发语言·jvm