Javap-Tools und Beispiele in Java
javap-Tool ist eine nützliche Möglichkeit, Informationen über eine bestimmte Klasse oder Schnittstelle abzurufen. Durch seine Disassemblierungsfunktionen erhält der Befehl javap (auch als Java-Disassembler bekannt) die Aufgabe, dem Benutzer umfassende interne Informationen bereitzustellen. Mit den beiden Optionen -c oder -verbose, die jeweils einzigartige Ergebnisse liefern, kann sich der Benutzer im Bereich des Bytecodes und der Bytecode-Orchestrierung wiederfinden. Wenn keine Optionen verwendet werden, führt Javap die öffentlichen, geschützten und Paketfelder und -methoden der Eingabeklasse aus.
Grammatik
javap [option] [classname]
Wenn keine Optionen verwendet werden
Beispiel
javap class_name
Ausgabe
C:\Users\Aashi>javap java.lang.Object Compiled from "Object.java" public class java.lang.Object { public java.lang.Object(); public final native java.lang.Class<?> getClass(); public native int hashCode(); public boolean equals(java.lang.Object); protected native java.lang.Object clone() throws java.lang.CloneNotSupportedException; public java.lang.String toString(); public final native void notify(); public final native void notifyAll(); public final native void wait (long) throws java.lang.InterruptedException; public final void wait(long, int) throws java.lang.InterruptedException; public final void wait() throws java.lang.InterruptedException; protected void finalize() throws java.lang.Throwable; static {}; }
Wann Optionen verwendet werden sollten
Hier finden Sie Anweisungen für jede Option und wie Sie sie anwenden -
-help oder --help oder -? -
Hiermit wird eine Hilfemeldung für den Javap-Befehl gedruckt.
Beispiel
javap -help
Ausgabe
C:\Users\Aashi>javap -help Usage: javap <options> <classes> where possible options include: -help --help -? Print this usage message -version Version information -V -verbose Print additional information -1 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
-Version
Wird zum Drucken von Java-Versionsinformationen verwendet.
Beispiel
javap -version
Ausgabe
C:\Users\Aashi>javap -version 1.8.0_151
-v oder -verbose -
Dies wird verwendet, um zusätzliche Informationen wie Stapelgröße, Anzahl lokaler Variablen und Methodenparameter auszudrucken.
Beispiel
javap -v class_name
Ausgabe
C:\Users\Aashi>javap -v java.lang.Object Classfile jar:file:/C:/Program%20Files/Java/jdk1.8.0_151/jre/lib/rt.jar! /java/lang/Object.class Last modified Sep 5, 2017; size 1497 bytes MD5 checksum 074ebc688a81170b8740f1158648a3c7 Compiled from "Object.java" public class java.lang.Object minor version: 0 major version: 52 flags: ACC_PUBLIC, ACC_SUPER Constant pool: #1 = Integer 999999 #2 - String #16 //@ #3 = String #38 //nanosecond timeout value out of range #4 = String #42 //timeout value is negative #5 - Utf8 ()I #6 = Utf8 ()Ljava/lang/Object; #7 - Utf8 ()Ljava/lang/String; #8 = Utf8 ()V #9 - Utf8 (I)Ljava/lang/String; #10 - Utf8 (J)V #11 = Utf8 (JI)V #12 - Utf8 (Ljava/lang/Object;)Z #13 = Utf8 (Ljava/lang/String;)V #14 - Utf8 <clinit> #15 = Utf8 <init> #16 - Utf8 @ #17 - Utf8 Code #18 = Utf8 Exceptions #19 - Utf8 Line Number Table #20 = Utf8 Signature #21- Utf8 Source File #22 = Utf8 StackMapTable #23 Utf8 Append #24 Utf8 Clone #25 = Utf8 Equals #26 Utf8 finalize #27 = Utf8 getClass #28 Utf8 getName #29 - Utf8 hashCode #30 = Utf8 java/lang/Class #31 - Utf8 java/lang/CloneNotSupportedException #32 = Utf8 java/lang/IllegalArgumentException #33 - Utf8 Java/lang/Integer #34 Utf8 java/lang/InterruptedException
-l -
Dies wird zum Drucken von Zeilennummern und lokalen Variablentabellen verwendet.
Beispiel
javap -l class_name
Ausgabe
C:\Users\Aashi>javap -1 java.lang.Object Compiled from "Object.java” public class java.lang.Object { public java.lang.Object(); LineNumberTable: line 37: 0 public final native java.lang.Class<?> getClass(); public native int hashCode(); public boolean equals(java.lang.Object); LineNumberTable: line 149: 0 protected native java.lang.Object clone() throws java.lang.CloneNotSupportedException; public java.lang.String toString(); LineNumberTable: line 236: 0 public final native void notify(); public final native void notifyAll(); public final native void wait(long) throws Java.lang.InterruptedException; public final void wait(long, int) throws java.lang.InterruptedException; LineNumberTable: line 447: 0 line 448: 6 line 451: 16 line 452: 26 line 456: 36 line 457: 40 line 460: 44 line 461: 49 public final void wait() throws java.lang.InterruptedException; LineNumberTable: line 502:0 line 503: 5 protected void finalize() throws java.lang.Throwable; }
-Öffentlich
Dies wird verwendet, um nur öffentliche Klassen und Mitglieder zu drucken.
Beispiel
javap -public class_name
Ausgabe
C:\Users\Aashi>javap -public java.lang.Object Compiled from "Object.java" public class java.lang.Object { public java.lang.Object(); public final native java.lang.Class<?> getClass(); public native int hashCode(); public boolean equals(java.lang.Object); public java.lang.String toString(); public final native void notify(); public final native void notifyAll(); public final native void wait (long) throws java.lang.InterruptedException; public final void wait (long, int) throws java.lang.InterruptedException; public final void wait() throws java.lang.InterruptedException; }
-Geschützt
Dies wird zum Drucken geschützter/öffentlicher Klassen und Mitglieder verwendet.
Beispiel
javap -protected class_name
Ausgabe
C:\Users\Aashi>javap -protected java.lang.Object Compiled from "Object.java" public class java.lang.Object { public java.lang.Object(); public final native java.lang.Class<?> getClass(); public native int hashCode(); public boolean equals(java.lang.Object); protected native java.lang.Object clone() throws java.lang.CloneNotSupportedException; public java.lang.String toString(); public final native void notify(); public final native void notifyAll(); public final native void wait(long) throws java.lang.InterruptedException; public final void wait (long, int) throws java.lang.InterruptedException; public final void wait() throws java.lang.InterruptedException; protected void finalize() throws java.lang.Throwable; }
-Tasche
Dies wird zum Drucken von Paket-/geschützten/öffentlichen Klassen und Mitgliedern verwendet (Standard).
Beispiel
javap -package class_name
Ausgabe
C:\Users\Aashi>javap -package java.lang.Object Compiled from "Object.java" public class java.lang.Object { public java.lang.Object(); public final native java.lang.Class<?> getClass(); public native int hashCode(); public boolean equals(java.lang.Object); protected native java.lang.Object clone() throws java.lang.CloneNotSupportedException; public java.lang.String toString(); public final native void notify(); public final native void notifyAll(); public final native void wait (long) throws java.lang.InterruptedException; public final void wait (long, int) throws java.lang.InterruptedException; public final void wait() throws java.lang.InterruptedException; protected void finalize() throws java.lang.Throwable; static {}; }
-c
Dies wird zum Drucken des Demontagecodes verwendet.
Beispiel
javap -c class_name
Ausgabe
C:\Users\Aashi>javap -c java.lang.Object Compiled from "Object.java" public class java.lang.Object (public java.lang.Object(); Code: 0: return public final native java.lang.Class<?> getClass(); public native int hashCode(); public boolean equals(java.lang.Object); Code: 0: aload e 1: aload_1 2: 1f_acmpne 9 5:iconst_1 6: goto 10 9: iconst_0 10: ireturn protected native java.lang.Object clone() throws java.lang.CloneNotSupportedException; public java.lang.String toString(); Code: 0: new #52 //class java/lang/StringBuilder 3: dup 4: invokespecial #74 //Method java/lang/StringBuilder."<init>": ()V 7: aload_e 8: invokevirtual #73 // Method getClass: ()Ljava/lang/Class; 11: invokevirtual #67 // Method java/lang/class.getName:()Ljava/lang/String; 14: invokevirtual #76 // Method java/lang/StringBuilder.append: (Ljava/lang/String;) Ljava/lang/StringBuilder; 17: 1dc #2 // String @ 19: invokevirtual #76 // Method java/lang/StringBuilder.append: (Ljava/lang/String;)Ljava/lang/StringBuilder; 22: aload_e 23: invokevirtual #78 // Method hashCode: ()I 26: invokestatic #69 // Method java/lang/Integer.toHexString: (I) Ljava/lang/String; 29: invokevirtual #76 // Method java/lang/StringBuilder.append: (Ljava/lang/String;) Ljava/lang/StringBuilder; 32: invokevirtual #75 // Method java/lang/StringBuilder.toString: ()Ljava/lang/String; 35: areturn public final native void notify();
-s -
Dies wird zum Drucken interner Typsignaturen verwendet.
Beispiel
javap -s class_name
Ausgabe
C:\Users\Aashi>javap -s java.lang.Object Compiled from "Object.java" public class java.lang.Object { public java.lang.Object(); descriptor: ()V public final native java.lang.Class<?> getClass(); descriptor: ()Ljava/lang/class; public native int hashCode(); descriptor: ()I public boolean equals(java.lang.Object); descriptor: (Ljava/lang/Object;)Z protected native java.lang.Object clone() throws java.lang.CloneNotSupportedException; descriptor:()Ljava/lang/Object; public java.lang.String toString(); descriptor: ()Ljava/lang/String; public final native void notify(); descriptor: ()V public final native void notifyAll(); descriptor: ()V public final native void wait(long) throws java.lang.InterruptedException; descriptor: (J)V public final void wait(long, int) throws java.lang.InterruptedException; descriptor: (JI)V public final void wait() throws java.lang.InterruptedException; descriptor: ()V protected void finalize() throws java.lang.Throwable; descriptor: ()V static {}; descriptor: ()V }
-sysinfo -
Dies wird verwendet, um Systeminformationen (Pfad, Größe, Datum, MD5-Hash) der verarbeiteten Klasse zu drucken.
Beispiel
javap -sysinfo class_name
Ausgabe
C:\Users\Aashi>javap -sysinfo java.lang.Object Classfile jar:file:/C:/Program%20Files/Java/jdk1.8.0_151/jre/lib/rt.jar! /java/lang/Object.class Last modified Sep 5, 2017; size 1497 bytes MD5 checksum 074ebc688a81170b8740f1158648a3c7 Compiled from "Object.java" public class java.lang.Object { public java.lang.Object(); public final native java.lang.Class<?> getClass(); public native int hashCode(); public boolean equals(java.lang.Object); protected native java.lang.Object clone() throws java.lang.CloneNotSupportedException; public java.lang.String toString(); public final native void notify(); public final native void notifyAll(); public final native void wait (long) throws java.lang.InterruptedException; public final void wait (long, int) throws java.lang.InterruptedException; public final void wait() throws java.lang.InterruptedException; protected void finalize() throws java.lang.Throwable; static {}; }
-konstant -
Dies wird verwendet, um die endgültigen Konstanten der Klasse zu drucken.
Beispiel
javap -constants class_name
Ausgabe
C:\Users\Aashi>javap -constants java.lang.Object Compiled from "Object.java" public class java.lang.Object { public java.lang.Object(); public final native java.lang.Class<?> getClass(); public native int hashCode(); public boolean equals(java.lang.Object); protected native java.lang.Object clone() throws java.lang.CloneNotSupportedException; public java.lang.String toString(); public final native void notify(); public final native void notifyAll(); public final native void wait (long) throws java.lang.InterruptedException; public final void wait(long, int) throws java.lang.InterruptedException; public final void wait() throws java.lang.InterruptedException; protected void finalize() throws java.lang.Throwable; static {}; }
Fazit
javap-Tool ist ein vielseitiges und sehr leistungsstarkes Tool für Java-Programmierer, das es ihnen ermöglicht, Klassendokumente zu diagnostizieren und zu debuggen, Felder und Methoden auszuwerten und sauberen Code aus dem Bytecode von Klassendokumenten zu generieren. Dieses unverzichtbare Tool eignet sich für Java-Entwickler aller Erfahrungsstufen und ermöglicht ihnen die einfache Erweiterung ihres Wissens und die Fehlerbehebung bei Java-Programmen. Das Javap-Tool ist ein unersetzlicher Besitz für jeden angehenden Programmierer und wird sicherlich dabei helfen, seine Programmierkenntnisse schnell zu verbessern. Darüber hinaus hilft die breite Palette an Funktionen Programmierern, ihre Vorgehensweisen zu verfeinern, was ihnen einen Wettbewerbsvorteil beim Erstellen von Java-Anwendungen verschafft.
Das obige ist der detaillierte Inhalt vonJavap-Tools und Beispiele in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Einführung in Python-Funktionen: Einführung und Beispiele der Exec-Funktion Einführung: In Python ist Exec eine integrierte Funktion, die zum Ausführen von Python-Code verwendet wird, der in einer Zeichenfolge oder Datei gespeichert ist. Die exec-Funktion bietet eine Möglichkeit, Code dynamisch auszuführen, sodass das Programm während der Laufzeit nach Bedarf Code generieren, ändern und ausführen kann. In diesem Artikel wird die Verwendung der Exec-Funktion vorgestellt und einige praktische Codebeispiele gegeben. So verwenden Sie die Exec-Funktion: Die grundlegende Syntax der Exec-Funktion lautet wie folgt: exec

Wie schreibe ich einen einfachen Generator für Schülerleistungsberichte mit Java? Der Student Performance Report Generator ist ein Tool, das Lehrern und Erziehern dabei hilft, schnell Berichte über die Schülerleistung zu erstellen. In diesem Artikel wird erläutert, wie Sie mit Java einen einfachen Generator für Schülerleistungsberichte schreiben. Zuerst müssen wir das Studentenobjekt und das Studentennotenobjekt definieren. Das Schülerobjekt enthält grundlegende Informationen wie den Namen und die Schülernummer des Schülers, während das Schülerergebnisobjekt Informationen wie die Fachnoten und die Durchschnittsnote des Schülers enthält. Das Folgende ist die Definition eines einfachen Studentenobjekts: öffentlich

Einrückungsspezifikationen und Beispiele der Go-Sprache Die von Google entwickelte Programmiersprache ist für ihre prägnante und klare Syntax bekannt, bei der Einrückungsspezifikationen eine entscheidende Rolle für die Lesbarkeit und Schönheit des Codes spielen. In diesem Artikel werden die Einrückungsspezifikationen der Go-Sprache vorgestellt und anhand spezifischer Codebeispiele ausführlich erläutert. Einrückungsspezifikationen In der Go-Sprache werden Tabulatoren anstelle von Leerzeichen zum Einrücken verwendet. Jede Einrückungsebene besteht aus einem Tabulator, der normalerweise auf eine Breite von 4 Leerzeichen eingestellt ist. Solche Spezifikationen vereinheitlichen den Codierungsstil und ermöglichen es Teams, beim Kompilieren zusammenzuarbeiten

Die DECODE-Funktion in Oracle ist ein bedingter Ausdruck, der häufig verwendet wird, um unterschiedliche Ergebnisse basierend auf unterschiedlichen Bedingungen in Abfrageanweisungen zurückzugeben. In diesem Artikel werden die Syntax, Verwendung und der Beispielcode der DECODE-Funktion im Detail vorgestellt. 1. Syntax der DECODE-Funktion DECODE(expr,search1,result1[,search2,result2,...,default]) expr: der zu vergleichende Ausdruck oder das zu vergleichende Feld. Suche1,

Einführung in Python-Funktionen: Verwendung und Beispiele der abs-Funktion 1. Einführung in die Verwendung der abs-Funktion In Python ist die abs-Funktion eine integrierte Funktion, die zur Berechnung des Absolutwerts eines bestimmten Werts verwendet wird. Es kann ein numerisches Argument akzeptieren und den absoluten Wert dieser Zahl zurückgeben. Die grundlegende Syntax der abs-Funktion lautet wie folgt: abs(x) wobei x der numerische Parameter zur Berechnung des Absolutwerts ist, der eine Ganzzahl oder eine Gleitkommazahl sein kann. 2. Beispiele für die abs-Funktion Im Folgenden zeigen wir die Verwendung der abs-Funktion anhand einiger spezifischer Beispiele: Beispiel 1: Berechnung

Wie schreibe ich ein einfaches System zur Anwesenheitsverwaltung von Studenten mit Java? Mit der kontinuierlichen Weiterentwicklung der Technologie werden auch die Schulverwaltungssysteme ständig aktualisiert und verbessert. Das Anwesenheitsmanagementsystem der Schüler ist ein wichtiger Teil davon. Es kann der Schule dabei helfen, die Anwesenheit der Schüler zu verfolgen und Datenanalysen und Berichte bereitzustellen. In diesem Artikel wird vorgestellt, wie man mit Java ein einfaches System zur Anwesenheitsverwaltung von Studenten schreibt. 1. Anforderungsanalyse Bevor wir mit dem Schreiben beginnen, müssen wir die Funktionen und Anforderungen des Systems ermitteln. Zu den Grundfunktionen gehören die Registrierung und Verwaltung von Studenteninformationen, die Aufzeichnung von Anwesenheitsdaten von Studenten und

Einführung in Python-Funktionen: Verwendung und Beispiele der isinstance-Funktion Python ist eine leistungsstarke Programmiersprache, die viele integrierte Funktionen bereitstellt, um das Programmieren komfortabler und effizienter zu gestalten. Eine der sehr nützlichen integrierten Funktionen ist die Funktion isinstance(). In diesem Artikel werden die Verwendung und Beispiele der Funktion isinstance vorgestellt und spezifische Codebeispiele bereitgestellt. Mit der Funktion isinstance() wird ermittelt, ob ein Objekt eine Instanz einer bestimmten Klasse oder eines bestimmten Typs ist. Die Syntax dieser Funktion ist wie folgt

Einführung in Python-Funktionen: Funktionen und Beispiele der Eval-Funktion In der Python-Programmierung ist die Eval-Funktion eine sehr nützliche Funktion. Die Eval-Funktion kann eine Zeichenfolge als Programmcode ausführen und ihre Funktion ist sehr leistungsfähig. In diesem Artikel stellen wir die detaillierten Funktionen der Bewertungsfunktion sowie einige Anwendungsbeispiele vor. 1. Funktion der Eval-Funktion Die Funktion der Eval-Funktion ist sehr einfach. Sie kann einen String als Python-Code ausführen. Das bedeutet, dass wir einen String konvertieren können
