`

[java]jdk反编译器

阅读更多
javap -c package.ClassName

//...
   349: iconst_0
   350: iload   11
   352: iload   4
   354: iadd
   355: invokestatic    #427; //Method java/lang/System.arraycopy:(Ljava/lang/Ob
ject;ILjava/lang/Object;II)V
   358: aload   13
   360: astore_3
   361: iconst_0
   362: istore  13
   364: iload   13
   366: iload   12
   368: if_icmpge       392
   371: aload_3
   372: iload   11
   374: iload   4
   376: iadd
   377: iload   13
   379: iadd
   380: aload   7
   382: iload   13
   384: caload
   385: castore
   386: iinc    13, 1
   389: goto    364
   392: iload   4
   394: iload   12
   396: iload   10
   398: isub
   399: iadd
   400: istore  4
   402: goto    415
   405: aload_3
   406: iload   11
   408: iload   4
   410: iadd
   411: iload   8
   413: i2c
   414: castore
   415: iload   11
   417: iload   10
   419: iadd
   420: istore  11
   422: goto    156
   425: new     #200; //class java/lang/String
   428: dup
   429: iconst_0
   430: aload_0
   431: getfield        #353; //Field count:I
   434: iload   4
   436: iadd
   437: aload_3
   438: invokespecial   #393; //Method "<init>":(II[C)V
   441: areturn

public java.lang.String toUpperCase();
  Code:
   0:   aload_0
   1:   invokestatic    #435; //Method java/util/Locale.getDefault:()Ljava/util/
Locale;
   4:   invokevirtual   #415; //Method toUpperCase:(Ljava/util/Locale;)Ljava/lan
g/String;
   7:   areturn

public java.lang.String trim();
  Code:
   0:   aload_0
   1:   getfield        #353; //Field count:I
   4:   istore_1
   5:   iconst_0
   6:   istore_2
   7:   aload_0
   8:   getfield        #355; //Field offset:I
   11:  istore_3
   12:  aload_0
   13:  getfield        #356; //Field value:[C
   16:  astore  4
   18:  iload_2
   19:  iload_1
   20:  if_icmpge       40
   23:  aload   4
   25:  iload_3
   26:  iload_2
   27:  iadd
   28:  caload
   29:  bipush  32
   31:  if_icmpgt       40
   34:  iinc    2, 1
   37:  goto    18
   40:  iload_2
   41:  iload_1
   42:  if_icmpge       64
   45:  aload   4
   47:  iload_3
   48:  iload_1
   49:  iadd
   50:  iconst_1
   51:  isub
   52:  caload
   53:  bipush  32
   55:  if_icmpgt       64
   58:  iinc    1, -1
   61:  goto    40
   64:  iload_2
   65:  ifgt    76
   68:  iload_1
   69:  aload_0
   70:  getfield        #353; //Field count:I
   73:  if_icmpge       85
   76:  aload_0
   77:  iload_2
   78:  iload_1
   79:  invokevirtual   #403; //Method substring:(II)Ljava/lang/String;
   82:  goto    86
   85:  aload_0
   86:  areturn

public java.lang.String toString();
  Code:
   0:   aload_0
   1:   areturn

public char[] toCharArray();
  Code:
   0:   aload_0
   1:   getfield        #353; //Field count:I
   4:   newarray char
   6:   astore_1
   7:   aload_0
   8:   iconst_0
   9:   aload_0
   10:  getfield        #353; //Field count:I
   13:  aload_1
   14:  iconst_0
   15:  invokevirtual   #394; //Method getChars:(II[CI)V
   18:  aload_1
   19:  areturn

public static java.lang.String format(java.lang.String, java.lang.Object[]);
  Code:
   0:   new     #211; //class java/util/Formatter
   3:   dup
   4:   invokespecial   #430; //Method java/util/Formatter."<init>":()V
   7:   aload_0
   8:   aload_1
   9:   invokevirtual   #433; //Method java/util/Formatter.format:(Ljava/lang/St
ring;[Ljava/lang/Object;)Ljava/util/Formatter;
   12:  invokevirtual   #431; //Method java/util/Formatter.toString:()Ljava/lang
/String;
   15:  areturn

public static java.lang.String format(java.util.Locale, java.lang.String, java.l
ang.Object[]);
  Code:
   0:   new     #211; //class java/util/Formatter
   3:   dup
   4:   aload_0
   5:   invokespecial   #432; //Method java/util/Formatter."<init>":(Ljava/util/
Locale;)V
   8:   aload_1
   9:   aload_2
   10:  invokevirtual   #433; //Method java/util/Formatter.format:(Ljava/lang/St
ring;[Ljava/lang/Object;)Ljava/util/Formatter;
   13:  invokevirtual   #431; //Method java/util/Formatter.toString:()Ljava/lang
/String;
   16:  areturn

public static java.lang.String valueOf(java.lang.Object);
  Code:
   0:   aload_0
   1:   ifnonnull       9
   4:   ldc     #10; //String null
   6:   goto    13
   9:   aload_0
   10:  invokevirtual   #388; //Method java/lang/Object.toString:()Ljava/lang/St
ring;
   13:  areturn

public static java.lang.String valueOf(char[]);
  Code:
   0:   new     #200; //class java/lang/String
   3:   dup
   4:   aload_0
   5:   invokespecial   #398; //Method "<init>":([C)V
   8:   areturn

public static java.lang.String valueOf(char[], int, int);
  Code:
   0:   new     #200; //class java/lang/String
   3:   dup
   4:   aload_0
   5:   iload_1
   6:   iload_2
   7:   invokespecial   #399; //Method "<init>":([CII)V
   10:  areturn

public static java.lang.String copyValueOf(char[], int, int);
  Code:
   0:   new     #200; //class java/lang/String
   3:   dup
   4:   aload_0
   5:   iload_1
   6:   iload_2
   7:   invokespecial   #399; //Method "<init>":([CII)V
   10:  areturn

public static java.lang.String copyValueOf(char[]);
  Code:
   0:   aload_0
   1:   iconst_0
   2:   aload_0
   3:   arraylength
   4:   invokestatic    #411; //Method copyValueOf:([CII)Ljava/lang/String;
   7:   areturn

public static java.lang.String valueOf(boolean);
  Code:
   0:   iload_0
   1:   ifeq    9
   4:   ldc     #12; //String true
   6:   goto    11
   9:   ldc     #8; //String false
   11:  areturn

public static java.lang.String valueOf(char);
  Code:
   0:   iconst_1
   1:   newarray char
   3:   dup
   4:   iconst_0
   5:   iload_0
   6:   castore
   7:   astore_1
   8:   new     #200; //class java/lang/String
   11:  dup
   12:  iconst_0
   13:  iconst_1
   14:  aload_1
   15:  invokespecial   #393; //Method "<init>":(II[C)V
   18:  areturn

public static java.lang.String valueOf(int);
  Code:
   0:   iload_0
   1:   bipush  10
   3:   invokestatic    #381; //Method java/lang/Integer.toString:(II)Ljava/lang
/String;
   6:   areturn

public static java.lang.String valueOf(long);
  Code:
   0:   lload_0
   1:   bipush  10
   3:   invokestatic    #382; //Method java/lang/Long.toString:(JI)Ljava/lang/St
ring;
   6:   areturn

public static java.lang.String valueOf(float);
  Code:
   0:   fload_0
   1:   invokestatic    #378; //Method java/lang/Float.toString:(F)Ljava/lang/St
ring;
   4:   areturn

public static java.lang.String valueOf(double);
  Code:
   0:   dload_0
   1:   invokestatic    #377; //Method java/lang/Double.toString:(D)Ljava/lang/S
tring;
   4:   areturn

public native java.lang.String intern();

public int compareTo(java.lang.Object);
  Code:
   0:   aload_0
   1:   aload_1
   2:   checkcast       #200; //class java/lang/String
   5:   invokevirtual   #404; //Method compareTo:(Ljava/lang/String;)I
   8:   ireturn

static {};
  Code:
   0:   iconst_0
   1:   anewarray       #183; //class java/io/ObjectStreamField
   4:   putstatic       #357; //Field serialPersistentFields:[Ljava/io/ObjectStr
eamField;
   7:   new     #202; //class java/lang/String$CaseInsensitiveComparator
   10:  dup
   11:  aconst_null
   12:  invokespecial   #416; //Method java/lang/String$CaseInsensitiveComparato
r."<init>":(Ljava/lang/String$1;)V
   15:  putstatic       #358; //Field CASE_INSENSITIVE_ORDER:Ljava/util/Comparat
or;
   18:  return

}


分享到:
评论

相关推荐

    wscite201 java -jdk 编译器

    wscite201 java -jdk 编译器 使用java-jdk软件更方便,快捷,不必在dos中操作

    推荐一款Java反编译器,比较好用

    推荐一款Java反编译器,也使用了挺久的了,感觉还是很好用,就拿出和大家分享一下。 这款反编译器叫 "Java Decompiler", 由 Pavel Kouznetsov开发,目前最新版本为0.2.5. 它由 C++开发,并且官方可以下载 windows、...

    Java开发工具JDK6

    直接安装,关于环境变量的设置过程就不假赘述了。...path:C:\Program Files\Java\jdk1.6.0\bin; classpath:C:\Program Files\Java\jdk1.6.0\lib\dt.jar; 就是这样了,没有的话直接创建环境就好了

    Java JDK 17 (32位Windows系统)

    这是一个Java jdk17 编译器,如果需要安装其他版本请到oracle甲骨文官网下载。

    Java反编译器Decomp3.5.5.77

    Java反编译器Decomp3.5.5.77,可以很好的反编译Jdk1.5,Jdk1.6的class文件

    java反编译器_jdec20-src

    java反编译器_jdec20-src jar格式的,需要JDK环境支持

    windows下的java编译器和jdk.zip

    windows下的java编译器和jdk.zip

    java反编译器

    此反编译器只能反编译jdk1.4

    反编译器MOCHA

    c:\jdk\bin\mocha.zip  MOCHA用法:  java mocha.Decompiler [-v] [-o] Class1.class Class2.class ...  "java" 调用Java虚拟机  "mocha.Decompiler" 指示要进行JAVA反编译  "-v" 选择详细输出...

    JAVA帮助文档全系列 JDK1.5 JDK1.6 JDK1.7 官方中英完整版下载地址

    JDK(Java Development Kit,Java开发包,Java开发工具)是一个写Java的applet和应用程序的程序开发环境。它由一个处于操作系统层之上的运行环境还有开发者编译,调试和运行用Java语言写的applet和应用程序所需的工具...

    Java反编译工具CFR_110

    需要安装java 环境推荐安装 JDK7 u80 64bit CFR 使用方法,在命令行运行。 帮助: java -jar cfr_0_110.jar --help 反汇编一个类: java -jar cfr_0_110.jar SwitchTest.class 反汇编一个包: java -jar cfr_0_...

    JDK下载安装文档

    JDK的全称是JavaSE Development Kit,即java开发工具包,是sun公司提供的一套用于开发java应用程序的开发包,它提供了编译、运行java程序所需的各种工具和资源,包括java编译器、java运行时环境,以及常用的java类库...

    java反编译exe文件 java软件反编译

    二、JD-GUI是用C++开发的Java反编译器。它由PavelKouznetsov开发,支持三个平台:Windows、Linux和Apple MacOS。它在Eclipse平台下提供插件JD-Eclipse。JD-GUI不需要安装,直接单击运行,您可以对JAR、类文件进行反...

    java反编译工具及eclipse插件

     3、将jad反编译工具jad.exe放到jdk安装路径的bin目录下面,jadclipse_3.1.0.jar放到eclipse的安装目录下的plugins目录下。  4、启动eclipse,打开:Window-&gt;Preferences-&gt;Java-&gt;JadClipse.  Path to ...

    Java jdk 1.7

    它不包含开发工具(JDK)--编译器、调试器和其它工具。如果只需要运行Java程序或Applet,下载并安装它即可。如果要自行开发 Java软件,要下载JDK(JRE和JDK的区别,没有JDK的话,无法编译Java程序,如果想只运行Java...

    JAVA帮助文档全系列_JDK1.5_、JDK1.6、_JDK1.7_官方中英完整版下载

    JAVA帮助文档全系列 JDK1.5 JDK1.6 JDK1.7 官方中英完整版下载 JDK(Java Development Kit,Java开发包,Java开发工具)是一个写Java的applet和应用程序的程序开发环境。它由一个处于操作系统层之上的运行环境还有...

    Java JDK 1.8 64位

    Java JDK 1.8 64位是一款Java开发工具包,适用于64位操作系统。它包含了Java编译器、Java虚拟机、Java类库等开发所需的工具和组件,可以用于开发和运行Java应用程序。该工具包支持多种操作系统,包括Windows、Linux...

    JavaCompiler --JDK6 API的简介(java动态编译)

    java动态编译的几种技术介绍。JavaCompiler --JDK6 API的简介(java动态编译)

    Java jdk 1.8

    它不包含开发工具(JDK)--编译器、调试器和其它工具。如果只需要运行Java程序或Applet,下载并安装它即可。如果要自行开发 Java软件,要下载JDK(JRE和JDK的区别,没有JDK的话,无法编译Java程序,如果想只运行Java...

    JAVA简易编译器不需创建工程速度快【修正版】

    本版本为修正版。修正以下bug: 1.修正了之前版本由于JAVA转EXE过程中失误而导致的在部分机器上跑不动的问题 ...JAVA简易编译器,不需创建工程,速度快。无需用控制台javac命令。不过需要安装有JDK环境的。

Global site tag (gtag.js) - Google Analytics