我是靠谱客的博主 洁净钢笔,最近开发中收集的这篇文章主要介绍反编译字节码文件(class文件),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

javap -verbose  CC.class 
Classfile /D:/IDE/IDEAProject/jvm_study/bin/com/bjtu/asm/CC.class
  Last modified 2021-9-5; size 559 bytes
  MD5 checksum 00fecd00bb3c402033c2abc04e296f65
public class com.bjtu.asm.CC
  minor version: 0
  major version: 52
  flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
   #1 = Utf8               com/bjtu/asm/CC
   #2 = Class              #1             // com/bjtu/asm/CC
   #3 = Utf8               java/lang/Object
   #4 = Class              #3             // java/lang/Object
   #5 = Utf8               <init>
   #6 = Utf8               ()V
   #7 = NameAndType        #5:#6          // "<init>":()V
   #8 = Methodref          #4.#7          // java/lang/Object."<init>":()V
   #9 = Utf8               v1
  #10 = Utf8               com/bjtu/asm/MyTimeLogger
  #11 = Class              #10            // com/bjtu/asm/MyTimeLogger
  #12 = Utf8               start
  #13 = NameAndType        #12:#6         // start:()V
  #14 = Methodref          #11.#13        // com/bjtu/asm/MyTimeLogger.start:()V
  #15 = Utf8               java/lang/InterruptedException
  #16 = Class              #15            // java/lang/InterruptedException
  #17 = Utf8               java/lang/System
  #18 = Class              #17            // java/lang/System
  #19 = Utf8               out
  #20 = Utf8               Ljava/io/PrintStream;
  #21 = NameAndType        #19:#20        // out:Ljava/io/PrintStream;
  #22 = Fieldref           #18.#21        // java/lang/System.out:Ljava/io/PrintStream;
  #23 = Utf8               method1==>
  #24 = String             #23            // method1==>
  #25 = Utf8               java/io/PrintStream
  #26 = Class              #25            // java/io/PrintStream
  #27 = Utf8               println
  #28 = Utf8               (Ljava/lang/String;)V
  #29 = NameAndType        #27:#28        // println:(Ljava/lang/String;)V
  #30 = Methodref          #26.#29        // java/io/PrintStream.println:(Ljava/lang/String;)V
  #31 = Long               100l
  #33 = Utf8               java/lang/Thread
  #34 = Class              #33            // java/lang/Thread
  #35 = Utf8               sleep
  #36 = Utf8               (J)V
  #37 = NameAndType        #35:#36        // sleep:(J)V
  #38 = Methodref          #34.#37        // java/lang/Thread.sleep:(J)V
  #39 = Utf8               printStackTrace
  #40 = NameAndType        #39:#6         // printStackTrace:()V
  #41 = Methodref          #16.#40        // java/lang/InterruptedException.printStackTrace:()V
  #42 = Utf8               end
  #43 = NameAndType        #42:#6         // end:()V
  #44 = Methodref          #11.#43        // com/bjtu/asm/MyTimeLogger.end:()V
  #45 = Utf8               Code
  #46 = Utf8               StackMapTable
{
  public com.bjtu.asm.CC();
    descriptor: ()V
    flags: ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
         0: aload_0
         1: invokespecial #8                  // Method java/lang/Object."<init>":()V
         4: return

  public void v1();
    descriptor: ()V
    flags: ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
         0: invokestatic  #14                 // Method com/bjtu/asm/MyTimeLogger.start:()V
         3: getstatic     #22                 // Field java/lang/System.out:Ljava/io/PrintStream;
         6: ldc           #24                 // String method1==>
         8: invokevirtual #30                 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
        11: ldc2_w        #31                 // long 100l
        14: invokestatic  #38                 // Method java/lang/Thread.sleep:(J)V
        17: goto          25
        20: astore_1
        21: aload_1
        22: invokevirtual #41                 // Method java/lang/InterruptedException.printStackTrace:()V
        25: invokestatic  #44                 // Method com/bjtu/asm/MyTimeLogger.end:()V
        28: return
      Exception table:
         from    to  target type
            11    17    20   Class java/lang/InterruptedException
      StackMapTable: number_of_entries = 2
        frame_type = 84 /* same_locals_1_stack_item */
          stack = [ class java/lang/InterruptedException ]
        frame_type = 4 /* same */
}

在这里插入图片描述

最后

以上就是洁净钢笔为你收集整理的反编译字节码文件(class文件)的全部内容,希望文章能够帮你解决反编译字节码文件(class文件)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(98)

评论列表共有 0 条评论

立即
投稿
返回
顶部