zoukankan      html  css  js  c++  java
  • Java 查看运行生成的字节码文件 反汇编

    Microsoft Windows [版本 10.0.18362.657]
    (c) 2019 Microsoft Corporation。保留所有权利。

    D:大家保险同事pdmmaker>cd bin/com/sinosoft/test/

    D:大家保险同事pdmmakerincomsinosoft est>javap
    用法: javap <options> <classes>
    其中, 可能的选项包括:
    -help --help -? 输出此用法消息
    -version 版本信息
    -v -verbose 输出附加信息
    -l 输出行号和本地变量表
    -public 仅显示公共类和成员
    -protected 显示受保护的/公共类和成员
    -package 显示程序包/受保护的/公共类
    和成员 (默认)
    -p -private 显示所有类和成员
    -c 对代码进行反汇编
    -s 输出内部类型签名
    -sysinfo 显示正在处理的类的
    系统信息 (路径, 大小, 日期, MD5 散列)
    -constants 显示最终常量
    -classpath <path> 指定查找用户类文件的位置
    -cp <path> 指定查找用户类文件的位置
    -bootclasspath <path> 覆盖引导类文件的位置

    D:大家保险同事pdmmakerincomsinosoft est>javap -v
    错误: 未指定类

    D:大家保险同事pdmmakerincomsinosoft est>javap -v -p SingletonTest$1.class
    Classfile /D:/大家保险/同事/李红英/pdmmaker/bin/com/sinosoft/test/SingletonTest$1.class
    Last modified 2020-8-26; size 1076 bytes
    MD5 checksum 2748df6156ebaa89d32330fa3c46ae41
    Compiled from "SingletonTest.java"
    final class com.sinosoft.test.SingletonTest$1 implements java.lang.Runnable
    minor version: 0
    major version: 52
    flags: ACC_FINAL, ACC_SUPER
    Constant pool:
    #1 = Methodref #12.#30 // java/lang/Object."<init>":()V
    #2 = Methodref #31.#32 // com/sinosoft/test/LazySingleton.getInstance:()Lcom/sinosoft/test/LazySingleton;
    #3 = Fieldref #33.#34 // java/lang/System.out:Ljava/io/PrintStream;
    #4 = Class #35 // java/lang/StringBuilder
    #5 = Methodref #4.#30 // java/lang/StringBuilder."<init>":()V
    #6 = String #36 // ============
    #7 = Methodref #4.#37 // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
    #8 = Methodref #4.#38 // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    #9 = Methodref #4.#39 // java/lang/StringBuilder.toString:()Ljava/lang/String;
    #10 = Methodref #40.#41 // java/io/PrintStream.println:(Ljava/lang/String;)V
    #11 = Class #42 // com/sinosoft/test/SingletonTest$1
    #12 = Class #43 // java/lang/Object
    #13 = Class #44 // java/lang/Runnable
    #14 = Utf8 <init>
    #15 = Utf8 ()V
    #16 = Utf8 Code
    #17 = Utf8 LineNumberTable
    #18 = Utf8 LocalVariableTable
    #19 = Utf8 this
    #20 = Utf8 InnerClasses
    #21 = Utf8 Lcom/sinosoft/test/SingletonTest$1;
    #22 = Utf8 run
    #23 = Utf8 lazySingleton
    #24 = Utf8 Lcom/sinosoft/test/LazySingleton;
    #25 = Utf8 SourceFile
    #26 = Utf8 SingletonTest.java
    #27 = Utf8 EnclosingMethod
    #28 = Class #45 // com/sinosoft/test/SingletonTest
    #29 = NameAndType #46:#47 // main:([Ljava/lang/String;)V
    #30 = NameAndType #14:#15 // "<init>":()V
    #31 = Class #48 // com/sinosoft/test/LazySingleton
    #32 = NameAndType #49:#50 // getInstance:()Lcom/sinosoft/test/LazySingleton;
    #33 = Class #51 // java/lang/System
    #34 = NameAndType #52:#53 // out:Ljava/io/PrintStream;
    #35 = Utf8 java/lang/StringBuilder
    #36 = Utf8 ============
    #37 = NameAndType #54:#55 // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
    #38 = NameAndType #54:#56 // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    #39 = NameAndType #57:#58 // toString:()Ljava/lang/String;
    #40 = Class #59 // java/io/PrintStream
    #41 = NameAndType #60:#61 // println:(Ljava/lang/String;)V
    #42 = Utf8 com/sinosoft/test/SingletonTest$1
    #43 = Utf8 java/lang/Object
    #44 = Utf8 java/lang/Runnable
    #45 = Utf8 com/sinosoft/test/SingletonTest
    #46 = Utf8 main
    #47 = Utf8 ([Ljava/lang/String;)V
    #48 = Utf8 com/sinosoft/test/LazySingleton
    #49 = Utf8 getInstance
    #50 = Utf8 ()Lcom/sinosoft/test/LazySingleton;
    #51 = Utf8 java/lang/System
    #52 = Utf8 out
    #53 = Utf8 Ljava/io/PrintStream;
    #54 = Utf8 append
    #55 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder;
    #56 = Utf8 (Ljava/lang/Object;)Ljava/lang/StringBuilder;
    #57 = Utf8 toString
    #58 = Utf8 ()Ljava/lang/String;
    #59 = Utf8 java/io/PrintStream
    #60 = Utf8 println
    #61 = Utf8 (Ljava/lang/String;)V
    {
    com.sinosoft.test.SingletonTest$1();
    descriptor: ()V
    flags:
    Code:
    stack=1, locals=1, args_size=1
    0: aload_0
    1: invokespecial #1 // Method java/lang/Object."<init>":()V
    4: return
    LineNumberTable:
    line 17: 0
    LocalVariableTable:
    Start Length Slot Name Signature
    0 5 0 this Lcom/sinosoft/test/SingletonTest$1;

    public void run();
    descriptor: ()V
    flags: ACC_PUBLIC
    Code:
    stack=3, locals=2, args_size=1
    0: invokestatic #2 // Method com/sinosoft/test/LazySingleton.getInstance:()Lcom/sinosoft/test/LazySingleton;
    3: astore_1
    4: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream;
    7: new #4 // class java/lang/StringBuilder
    10: dup
    11: invokespecial #5 // Method java/lang/StringBuilder."<init>":()V
    14: ldc #6 // String ============
    16: invokevirtual #7 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
    19: aload_1
    20: invokevirtual #8 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    23: invokevirtual #9 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
    26: invokevirtual #10 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
    29: return
    LineNumberTable:
    line 20: 0
    line 22: 4
    line 23: 29
    LocalVariableTable:
    Start Length Slot Name Signature
    0 30 0 this Lcom/sinosoft/test/SingletonTest$1;
    4 26 1 lazySingleton Lcom/sinosoft/test/LazySingleton;
    }
    SourceFile: "SingletonTest.java"
    EnclosingMethod: #28.#29 // com.sinosoft.test.SingletonTest.main
    InnerClasses:
    static #11; //class com/sinosoft/test/SingletonTest$1
  • 相关阅读:
    js模拟点击加载事件代码
    js添加节点
    js数字随机产生并相加
    转:Selenium借助AutoIt识别上传(下载)详解
    [原创] web_custom_request 与 Viewstate
    转:浏览器与WEB服务器工作过程举例
    转:WebDriver(Selenium2) 处理可能存在的JS弹出框
    转:Loadrunner报错“Too many local variablesAction.c”解决方法
    转:loadrunner关联及web_reg_save_param方法浅析
    转:性能测试流程剖析
  • 原文地址:https://www.cnblogs.com/dongyaotou/p/13568946.html
Copyright © 2011-2022 走看看