`

[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 编译器

    1. **Java JDK**: JDK是Java程序员的基础,包含了Java运行环境(JRE)、Java编译器(javac)、Java文档生成器(javadoc)、Java打包工具(jar)以及一系列用于开发和调试的工具。JDK使得开发者能够在本地计算机上...

    java反编译器工具

    5. ** Krakatau**:这款反编译器专为处理复杂的Java字节码而设计,支持从JDK 1.0到最新的版本,包括对泛型和注解的支持。 6. **Decompiler for IntelliJ IDEA**:如果你使用IntelliJ IDEA作为Java开发环境,那么...

    反编译器,一款优秀的JAVA反编译器

    6. **兼容性**:反编译器应能处理各种版本的Java字节码,从早期的JDK 1.1到最新的Java版本。 7. **免费与开源**:许多优秀的Java反编译器是免费提供的,并且开源,这使得用户可以自由地定制和扩展它们的功能。 在...

    java反编译器好用便宜

    Java反编译器是开发人员在处理Java字节码时常用的一种工具,它能够将已经编译后的.class文件转换回可读性强的源代码(.java文件)。这在需要查看或理解非开源库的内部实现、逆向工程、调试或者学习已编译代码时非常...

    java反编译器。。。。。

    Java源代码在被JDK的javac编译器编译后,会生成字节码文件,这些字节码是平台无关的中间语言,由Java虚拟机(JVM)执行。Java反编译器的作用就是逆向这个过程,尝试将字节码还原为可读性强的Java源代码。 常见的...

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

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

    java反编译器工具(含说明文档)

    Java反编译器是开发人员在理解和学习Java代码或者对已有的字节码进行逆向工程时常用的工具。本文将详细介绍Java反编译器的概念、用途以及如何使用Jad这一著名的Java反编译器,包括其与JadClipse集成的配置方法。 一...

    Java JDK 7学习笔记 PDF

    Java JDK 7是Java开发工具包的一个重要版本,它的全称是Java Development Kit,是用于构建和运行Java应用程序的关键组件。这个PDF学习笔记是开发者深入理解JDK 7特性和功能的重要参考资料。以下是对Java JDK 7的一些...

    Java开发工具JDK6

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

    java 反编译器 JD

    2. **反编译支持**:JD支持JDK的不同版本,包括从早期的JDK1.1到最新的Java版本。这意味着它能处理不同年代和版本的Java程序。 3. **语法恢复**:JD尽力保持反编译后源代码的可读性,尽可能地恢复原始代码的结构和...

    Java反编译器Decomp3.5.5.77

    Java反编译器Decomp3.5.5.77是一款强大的工具,专门用于将Java字节码(.class文件)还原成可读的源代码。这个版本支持Jdk1.5和Jdk1.6的类文件反编译,为开发者提供了查看和理解已编译Java程序内部结构的能力。在软件...

    jdk1.8class反编译

    Procyon是一款开源的Java和.NET编译器及反编译器,它支持反编译Java字节码回Java源代码。描述中提到的"procyon-decompiler-0.5.30.jar"就是Procyon的反编译工具的可执行文件。使用该工具时,我们可以按照以下步骤...

    java反编译器

    然而,根据你提供的信息,这个特定的反编译器可能只支持Java Development Kit (JDK) 1.4版本的字节码。这表明它可能无法处理JDK更高版本的特性,因为Java语言和字节码规范随着时间的推移一直在发展。 Java字节码是...

    Java JDK11_for_Mac

    Java JDK11 for Mac 是Java开发工具包的一个版本,专为苹果Mac操作系统设计。JDK,全称为Java Development Kit,是开发和运行Java应用程序必不可少的软件包。它包含了Java编译器、Java运行环境(JRE)、调试器、文档...

    Cavaj Java Decompiler JAV反编译器

    这就是反编译器如Cavaj Java Decompiler的用途所在,它能够帮助开发者将字节码还原为接近原貌的Java源代码。 Cavaj Java Decompiler的特点包括: 1. 易于使用:用户界面友好,使得即使是新手也能快速上手。只需...

    java JDK1.8版本下载

    Java JDK(Java Development Kit)是Java编程语言的软件开发工具包,它包含了编译、调试、运行Java程序所需的所有工具和库。JDK1.8是Oracle公司发布的Java平台标准版(Java SE)的一个重要版本,它在2014年3月18日...

    java jdk 64位window

    1. **Java编译器** (javac):将源代码(.java文件)编译成可执行的字节码(.class文件)。 2. **Java虚拟机** (JVM):负责运行编译后的Java程序,提供跨平台的执行环境。 3. **Java运行时环境** (JRE):包含JVM和...

    javajdk.zip

    本压缩包"javajdk.zip"包含了Java EE(Java企业版)和Java ME(Java Micro Edition)的最新版本JDK,这两个版本是Java在不同应用场景下的扩展。 Java EE是用于开发企业级应用程序的平台,它提供了服务器端的组件...

    JavaJDK1.7chm中文版

    "JavaJDK1.7chm中文版"则是一个针对中国用户特别制作的版本,它包含了完整的JDK 1.7 API文档,并且是中文语言,方便国内开发者查阅和理解。 CHM文件,全称为Compiled HTML Help,是微软开发的一种帮助文件格式,它...

Global site tag (gtag.js) - Google Analytics