JVM-02

字节码文件是一种特殊的文件格式,它包含了将源代码转换为机器可执行代码所需的指令集。字节码文件通常是由编译器将源代码编译为字节码的中间表示形式。

在Java中,字节码文件的扩展名为.class,它存储了编译后的Java代码。这些字节码文件可以在Java虚拟机上运行,并将字节码转换为机器代码来执行。

字节码文件中的指令通常是基于栈的操作,它们被设计成与Java虚拟机的指令集兼容。这使得字节码文件可以在不同的计算机上运行,只要这些计算机有一个能够解释和执行字节码的Java虚拟机。

除了Java,其他编程语言如Python、Ruby和C#等也有类似的字节码文件。这些字节码文件在执行时会被相应的虚拟机解释和执行。

字节码文件主要信息:

1.基础信息:魔数、字节码文件对应的Java版本号,访问标识(public final等等),父类和接口。

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

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

4.方法:当前类或接口声明的方法信息,字节码指令。

5.属性:类的属性,比如源码的文件名,内部类的列表等。

Java字节码文件中,将文件头称为magic魔数。 CAFEBABE

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

字节码指令中通过编号引用到常量池的过程称之为符号引用。

Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,大大提升线上问题排查效率。

官网:https://arthas.aliyun.com/doc/

dump 类的全限定名:dump已加载类的字节码文件到特定目录。

jad类的全限定名:反编译已加载类的源码。

相关推荐
瀚高PG实验室10 分钟前
瀚高数据库V9.0.5数据脱敏完整配置步骤
jvm·数据库·postgresql·瀚高数据库
阿里云基础软件1 小时前
一句话看透 JVM,SysOM 诊断 Skill 新增 Java 应用诊断能力
java·开发语言·jvm·人工智能·操作系统·sysom 诊断 skill
wuminyu2 小时前
Kafka的写入延迟与磁盘IO抖动原理分析
java·linux·c语言·jvm·c++
fallwind_of_july2 小时前
JVM 频繁 Full GC 排查思路:从原理到工具实战
jvm
写后端的胖头鱼2 小时前
一文讲懂JVM与调优
jvm·后端·算法·架构·jvm调优
StayInLove1 天前
JVM 内存问题排查方法论
jvm
wuminyu1 天前
Kafka利用sendfile与Page Cache实现高性能传输剖析
java·linux·c语言·jvm·c++
my_realmy1 天前
Java 基础面试笔记(二):JDK、JRE、JVM、JIT 与 JAR
jvm·虚拟机·jit·特性·jre·垃圾回收机制
Nuanyt1 天前
JUC常见核心知识梳理01 线程 并发 JMM volatile 管程 锁 synchronized
java·开发语言·网络·jvm
CodeStats1 天前
【Java 类加载器】Java 类加载器完整体系深度拆解(中):URLClassLoader 能力剖析与继承委派辨析
java·jvm·classloader·类加载器