java class 内容查看_015-JVM-使用javap查看class文件内容

处理使用上面的工具还可以使用 javap 查看 class 文件的格式Microsoft Windows [版本 10.0.19041.685]

(c) 2020 Microsoft Corporation. 保留所有权利。

D:\MCA\JVM\out\production\JVM\com\yuhl>javap -v Helloword.class

Classfile /D:/MCA/JVM/out/production/JVM/com/yuhl/Helloword.class

Last modified 2020-12-19; size 547 bytes

MD5 checksum 0d5b91ddd1f20c608a7cabc0eb01efec

Compiled from "Helloword.java"

public class com.yuhl.Helloword

minor version: 0

major version: 52

flags: ACC_PUBLIC, ACC_SUPER

Constant pool:

#1 = Methodref          #6.#20         // java/lang/Object."":()V

#2 = Fieldref           #21.#22        // java/lang/System.out:Ljava/io/PrintStream;

#3 = String             #23            // Helloword!

#4 = Methodref          #24.#25        // java/io/PrintStream.println:(Ljava/lang/String;)V

#5 = Class              #26            // com/yuhl/Helloword

#6 = Class              #27            // java/lang/Object

#7 = Utf8               

#8 = Utf8               ()V

#9 = Utf8               Code

#10 = Utf8               LineNumberTable

#11 = Utf8               LocalVariableTable

#12 = Utf8               this

#13 = Utf8               Lcom/yuhl/Helloword;

#14 = Utf8               main

#15 = Utf8               ([Ljava/lang/String;)V

#16 = Utf8               args

#17 = Utf8               [Ljava/lang/String;

#18 = Utf8               SourceFile

#19 = Utf8               Helloword.java

#20 = NameAndType        #7:#8          // "":()V

#21 = Class              #28            // java/lang/System

#22 = NameAndType        #29:#30        // out:Ljava/io/PrintStream;

#23 = Utf8               Helloword!

#24 = Class              #31            // java/io/PrintStream

#25 = NameAndType        #32:#33        // println:(Ljava/lang/String;)V

#26 = Utf8               com/yuhl/Helloword

#27 = Utf8               java/lang/Object

#28 = Utf8               java/lang/System

#29 = Utf8               out

#30 = Utf8               Ljava/io/PrintStream;

#31 = Utf8               java/io/PrintStream

#32 = Utf8               println

#33 = Utf8               (Ljava/lang/String;)V

{

public com.yuhl.Helloword();

descriptor: ()V

flags: ACC_PUBLIC

Code:

stack=1, locals=1, args_size=1

0: aload_0

1: invokespecial #1                  // Method java/lang/Object."":()V

4: return

LineNumberTable:

line 9: 0

LocalVariableTable:

Start  Length  Slot  Name   Signature

0       5     0  this   Lcom/yuhl/Helloword;

public static void main(java.lang.String[]);

descriptor: ([Ljava/lang/String;)V

flags: ACC_PUBLIC, ACC_STATIC

Code:

stack=2, locals=1, args_size=1

0: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;

3: ldc           #3                  // String Helloword!

5: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V

8: return

LineNumberTable:

line 11: 0

line 12: 8

LocalVariableTable:

Start  Length  Slot  Name   Signature

0       9     0  args   [Ljava/lang/String;

}

SourceFile: "Helloword.java"

D:\MCA\JVM\out\production\JVM\com\yuhl>复制代码

简单说明:Classfile:类文件

Constant pool: 常量池

SourceFile: 源文件

因为这 java 类写的比较简单,所以很多信息是没有的,但是遇到问题就参考前面的字典就可以解读了

[014-JVM-Class 文件结构概况 blog.csdn.net/fsjwin/arti…

2.1 效果

45666c963b800bf5645fd0176ee41c7d.png

external tools 添加很简单,自行解决之:

9dc09b10b360481372245657d4fd493f.png

看到的效果和使用命令一样的

225855f415ff3c519e4ba13f6bc63498.png

0493d786f01f6f351d65c3b1a5b830b4.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值