Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是;p";在;javap";代表_Java_Javap - Fatal编程技术网

什么是;p";在;javap";代表

什么是;p";在;javap";代表,java,javap,Java,Javap,“javap”中的“p”代表什么?(javac中的“c”代表编译器)默认情况下,javap打印命令行上指定的每个类的非私有成员的声明 参考:它代表java打印机……它打印类中的方法声明,这是查看编译器如何运行的一个非常好的方法 已解释代码并将源文件转换为.class格式。javap命令反汇编一个或多个类文件。其输出取决于所使用的选项。如果没有使用任何选项,javap将打印传递给它的类的包、受保护的、公共的字段和方法。javap将其输出打印到stdout。它列出了指定类包含的所有方法和变量。 您只

“javap”中的“p”代表什么?(javac中的“c”代表编译器)

默认情况下,
javap
打印命令行上指定的每个类的非私有成员的声明


参考:

它代表java打印机……

它打印类中的方法声明,这是查看编译器如何运行的一个非常好的方法
已解释代码并将源文件转换为.class格式。

javap命令反汇编一个或多个类文件。其输出取决于所使用的选项。如果没有使用任何选项,javap将打印传递给它的类的包、受保护的、公共的字段和方法。javap将其输出打印到stdout。

它列出了指定类包含的所有方法和变量。 您只需要在命令行上使用javap命令paas类名。 例如 C:\jdk1.3\bin>javap java.lang.Object 它将列出对象类包含的所有方法。

p
=print
javap
是官方Java工具的一部分,允许反汇编一个或多个类文件

本例中的“p”代表打印,如报告中所述:

。。。
javap
命令打印传递给它的包、受保护和公共字段以及类的方法。
javap
命令将其输出打印到stdout

除了回答了什么,让我们反思一下javap:

如您所见,从选项描述中,p in
javap
很可能代表print(因为描述主要包括print this、print that、show this、show that…)。

(注意:根据其定义,下面的输出没有提到InnerClass,只有它正在内省的类,没有提到
private
属性):


javap命令反汇编一个或多个类文件。输出 取决于所使用的选项。如果没有使用任何选项,那么javap 命令打印包、受保护和公共字段以及方法 传递给它的类的名称。javap命令将其输出打印到 斯特杜特

详细的javap是(如果您感兴趣):

javap-v CheckoutJavaP.class
Classfile/C:/Users/jumping\u monkey/CheckoutJavaP.class
最后修改日期:2020年2月9日;大小为822字节
MD5校验和fb7f219851715ef4489ebf7a47800d47
从“CheckoutJavaP.java”编译而来
公共类CheckoutJavaP
次要版本:0
主要版本:52
旗帜:ACC_公共、ACC_超级
固定池:
#1=Methodref#16.#30//java/lang/Object.“:()V
#2=类#31//内部类
#3=Methodref#2.#30//内部类。“:()V
#4=Methodref#2.#32//InnerClass.show:()V
#5=Fieldref#33.#34//java/lang/System.out:Ljava/io/PrintStream;
#6=类#35//java/lang/StringBuilder
#7=Methodref#6.#30//java/lang/StringBuilder。”“:()V
#8=Fieldref#15.#36//CheckoutJavaP.s:Ljava/lang/String;
#9=Methodref#6.#37//java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
#10=Fieldref#15.#38//CheckoutJavaP.i:i
#11=Methodref#6.#39//java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
#12=Methodref#6.#40//java/lang/StringBuilder.toString:()Ljava/lang/String;
#13=Methodref#41.#42//java/io/PrintStream.println:(Ljava/lang/String;)V
#14=字符串#43//String
#15=类#44//CheckoutJavaP
#16=类#45//java/lang/Object
#17=Utf8 i
#18=Utf8 I
#19=Utf8 s
#20=Utf8 Ljava/lang/String;
#21=Utf8
#22=Utf8()V
#23=Utf8代码
#24=Utf8行号表
#25=Utf8主
#26=Utf8([Ljava/lang/String;)V
#27=Utf8
#28=Utf8源文件
#29=Utf8 CheckoutJavaP.java
#30=名称和类型#21:#22/“”:()V
#31=Utf8内部类
#32=名称和类型#46:#22//show:()V
#33=类#47//java/lang/System
#34=名称和类型#48:#49//out:Ljava/io/PrintStream;
#35=Utf8 java/lang/StringBuilder
#36=名称和类型#19:#20//s:Ljava/lang/String;
#37=名称和类型#50:#51//append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
#38=名称和类型#17:#18//i:i
#39=名称和类型#50:#52//附加:(I)Ljava/lang/StringBuilder;
#40=名称和类型#53:#54//toString:()Ljava/lang/String;
#41=类#55//java/io/PrintStream
#42=名称和类型#56:#57//println:(Ljava/lang/String;)V
#43=Utf8字符串
#44=Utf8 CheckoutJavaP
#45=Utf8 java/lang/Object
#46=Utf8显示
#47=Utf8 java/lang/System
#48=Utf8输出
#49=Utf8 Ljava/io/PrintStream;
#50=Utf8追加
#51=Utf8(Ljava/lang/String;)Ljava/lang/StringBuilder;
#52=Utf8(I)Ljava/lang/StringBuilder;
#53=Utf8 toString
#54=Utf8()Ljava/lang/String;
#55=Utf8 java/io/PrintStream
#56=Utf8 println
#57=Utf8(Ljava/lang/String;)V
{
受保护的静态java.lang.String;
描述符:Ljava/lang/String;
标志:ACC_保护,ACC_静态
公共CheckoutJavaP();
描述符:()V
旗帜:ACC_PUBLIC
代码:
堆栈=1,局部变量=1,ar
javap -help
Usage: javap <options> <classes>
where possible options include:
  -help  --help  -?        Print this usage message
  -version                 Version information
  -v  -verbose             Print additional information
  -l                       Print line number and local variable tables
  -public                  Show only public classes and members
  -protected               Show protected/public classes and members
  -package                 Show package/protected/public classes
                           and members (default)
  -p  -private             Show all classes and members
  -c                       Disassemble the code
  -s                       Print internal type signatures
  -sysinfo                 Show system info (path, size, date, MD5 hash)
                           of class being processed
  -constants               Show final constants
  -classpath <path>        Specify where to find user class files
  -cp <path>               Specify where to find user class files
  -bootclasspath <path>    Override location of bootstrap class files
public class CheckoutJavaP{ 
    private static int i = 1;
    protected static String s = "string";
    public static void main(String[] args){
        InnerClass iC = new InnerClass();
        iC.show();
        System.out.println(s + i);
    }
}

class InnerClass{
    protected int count;
    public InnerClass(){ System.out.println("In InnerClass Constructor");}
    public void show(){ System.out.println("In InnerClass.show()");}
    public int getCount(){ return this.count;}
}
 javap CheckoutJavaP.class
    Compiled from "CheckoutJavaP.java"
    public class CheckoutJavaP {
      protected static java.lang.String s;
      public CheckoutJavaP();
      public static void main(java.lang.String[]);
      static {};
    }
javap -v CheckoutJavaP.class
Classfile /C:/Users/jumping_monkey/CheckoutJavaP.class
  Last modified 9 Feb, 2020; size 822 bytes
  MD5 checksum fb7f219851715ef4489ebf7a47800d47
  Compiled from "CheckoutJavaP.java"
public class CheckoutJavaP
  minor version: 0
  major version: 52
  flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
   #1 = Methodref          #16.#30        // java/lang/Object."<init>":()V
   #2 = Class              #31            // InnerClass
   #3 = Methodref          #2.#30         // InnerClass."<init>":()V
   #4 = Methodref          #2.#32         // InnerClass.show:()V
   #5 = Fieldref           #33.#34        // java/lang/System.out:Ljava/io/PrintStream;
   #6 = Class              #35            // java/lang/StringBuilder
   #7 = Methodref          #6.#30         // java/lang/StringBuilder."<init>":()V
   #8 = Fieldref           #15.#36        // CheckoutJavaP.s:Ljava/lang/String;
   #9 = Methodref          #6.#37         // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
  #10 = Fieldref           #15.#38        // CheckoutJavaP.i:I
  #11 = Methodref          #6.#39         // java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
  #12 = Methodref          #6.#40         // java/lang/StringBuilder.toString:()Ljava/lang/String;
  #13 = Methodref          #41.#42        // java/io/PrintStream.println:(Ljava/lang/String;)V
  #14 = String             #43            // string
  #15 = Class              #44            // CheckoutJavaP
  #16 = Class              #45            // java/lang/Object
  #17 = Utf8               i
  #18 = Utf8               I
  #19 = Utf8               s
  #20 = Utf8               Ljava/lang/String;
  #21 = Utf8               <init>
  #22 = Utf8               ()V
  #23 = Utf8               Code
  #24 = Utf8               LineNumberTable
  #25 = Utf8               main
  #26 = Utf8               ([Ljava/lang/String;)V
  #27 = Utf8               <clinit>
  #28 = Utf8               SourceFile
  #29 = Utf8               CheckoutJavaP.java
  #30 = NameAndType        #21:#22        // "<init>":()V
  #31 = Utf8               InnerClass
  #32 = NameAndType        #46:#22        // show:()V
  #33 = Class              #47            // java/lang/System
  #34 = NameAndType        #48:#49        // out:Ljava/io/PrintStream;
  #35 = Utf8               java/lang/StringBuilder
  #36 = NameAndType        #19:#20        // s:Ljava/lang/String;
  #37 = NameAndType        #50:#51        // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
  #38 = NameAndType        #17:#18        // i:I
  #39 = NameAndType        #50:#52        // append:(I)Ljava/lang/StringBuilder;
  #40 = NameAndType        #53:#54        // toString:()Ljava/lang/String;
  #41 = Class              #55            // java/io/PrintStream
  #42 = NameAndType        #56:#57        // println:(Ljava/lang/String;)V
  #43 = Utf8               string
  #44 = Utf8               CheckoutJavaP
  #45 = Utf8               java/lang/Object
  #46 = Utf8               show
  #47 = Utf8               java/lang/System
  #48 = Utf8               out
  #49 = Utf8               Ljava/io/PrintStream;
  #50 = Utf8               append
  #51 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;
  #52 = Utf8               (I)Ljava/lang/StringBuilder;
  #53 = Utf8               toString
  #54 = Utf8               ()Ljava/lang/String;
  #55 = Utf8               java/io/PrintStream
  #56 = Utf8               println
  #57 = Utf8               (Ljava/lang/String;)V
{
  protected static java.lang.String s;
    descriptor: Ljava/lang/String;
    flags: ACC_PROTECTED, ACC_STATIC

  public CheckoutJavaP();
    descriptor: ()V
    flags: ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
         0: aload_0
         1: invokespecial #1                  // Method java/lang/Object."<init>":()V
         4: return
      LineNumberTable:
        line 1: 0

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
         0: new           #2                  // class InnerClass
         3: dup
         4: invokespecial #3                  // Method InnerClass."<init>":()V
         7: astore_1
         8: aload_1
         9: invokevirtual #4                  // Method InnerClass.show:()V
        12: getstatic     #5                  // Field java/lang/System.out:Ljava/io/PrintStream;
        15: new           #6                  // class java/lang/StringBuilder
        18: dup
        19: invokespecial #7                  // Method java/lang/StringBuilder."<init>":()V
        22: getstatic     #8                  // Field s:Ljava/lang/String;
        25: invokevirtual #9                  // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        28: getstatic     #10                 // Field i:I
        31: invokevirtual #11                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
        34: invokevirtual #12                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
        37: invokevirtual #13                 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
        40: return
      LineNumberTable:
        line 5: 0
        line 6: 8
        line 7: 12
        line 8: 40

  static {};
    descriptor: ()V
    flags: ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: iconst_1
         1: putstatic     #10                 // Field i:I
         4: ldc           #14                 // String string
         6: putstatic     #8                  // Field s:Ljava/lang/String;
         9: return
      LineNumberTable:
        line 2: 0
        line 3: 4
}
SourceFile: "CheckoutJavaP.java"