Heim > Java > javaLernprogramm > So verwenden Sie IDEA, um den kompilierten Bytecode-Inhalt von Java-Dateien anzuzeigen

So verwenden Sie IDEA, um den kompilierten Bytecode-Inhalt von Java-Dateien anzuzeigen

WBOY
Freigeben: 2023-05-14 18:37:06
nach vorne
1951 Leute haben es durchsucht

Schreiben Sie zuerst eine Java-Klasse StringDemo1.java

public class StringDemo1 {
   public static void main(String[] args) {
       String str1 = "aaa" + "bbb";
       System.out.println(str1);
       String str2 = "ccc";
       str2 += "ddd";
       System.out.println(str2);
   }
}
Nach dem Login kopieren

Generieren Sie nach der Kompilierung die Datei StringDemo1.class

Verwenden Sie IDEA, um den Inhalt der kompilierten Datei anzuzeigen:

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package jdk.java.lang.string;
public class StringDemo1 {
   public StringDemo1() {
   }
   public static void main(String[] args) {
       String str1 = "aaabbb";
       System.out.println(str1);
       String str2 = "ccc";
       str2 = str2 + "ddd";
       System.out.println(str2);
   }
}
Nach dem Login kopieren


Sie können sehen, dass der Inhalt von IDEA dekompiliert wurde. Der Bytecode-Inhalt ist nicht sichtbar.

Verwenden Sie das Dekompilierungstool jclasslib.

Suchen Sie in IDEA nach dem Plug-in jclasslib Bytecode Viewer, installieren Sie es und starten Sie IDEA neu.

Öffnen Sie die Datei StringDemo1.java erneut, öffnen Sie Ansicht -> Bytecode anzeigen in der IDEA-Menüleiste, und Sie können den Inhalt der Bytecode-Datei sehen:

// class version 52.0 (52)
// access flags 0x21
public class jdk/java/lang/string/StringDemo1 {
 // compiled from: StringDemo1.java
 // access flags 0x1
 public <init>()V
  L0
   LINENUMBER 8 L0
   ALOAD 0
   INVOKESPECIAL java/lang/Object.<init> ()V
   RETURN
  L1
   LOCALVARIABLE this Ljdk/java/lang/string/StringDemo1; L0 L1 0
   MAXSTACK = 1
   MAXLOCALS = 1
 // access flags 0x9
 public static main([Ljava/lang/String;)V
  L0
   LINENUMBER 11 L0
   LDC "aaabbb"
   ASTORE 1
  L1
   LINENUMBER 12 L1
   GETSTATIC java/lang/System.out : Ljava/io/PrintStream;
   ALOAD 1
   INVOKEVIRTUAL java/io/PrintStream.println (Ljava/lang/String;)V
  L2
   LINENUMBER 15 L2
   LDC "ccc"
   ASTORE 2
  L3
   LINENUMBER 16 L3
   NEW java/lang/StringBuilder
   DUP
   INVOKESPECIAL java/lang/StringBuilder.<init> ()V
   ALOAD 2
   INVOKEVIRTUAL java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
   LDC "ddd"
   INVOKEVIRTUAL java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
   INVOKEVIRTUAL java/lang/StringBuilder.toString ()Ljava/lang/String;
   ASTORE 2
  L4
   LINENUMBER 17 L4
   GETSTATIC java/lang/System.out : Ljava/io/PrintStream;
   ALOAD 2
   INVOKEVIRTUAL java/io/PrintStream.println (Ljava/lang/String;)V
  L5
   LINENUMBER 18 L5
   RETURN
  L6
   LOCALVARIABLE args [Ljava/lang/String; L0 L6 0
   LOCALVARIABLE str1 Ljava/lang/String; L1 L6 1
   LOCALVARIABLE str2 Ljava/lang/String; L3 L6 2
   MAXSTACK = 2
   MAXLOCALS = 3
}
Nach dem Login kopieren

JDK-Versionszuordnung

JDK-Version Klassenversion
J2SE 8 52
J2SE 7 51
J2SE 6.0 50
J2SE 5. 0 49
JDK 1.4 48
JDK 1.3 47
JDK 1.2 46
JDK 1.1 45

Das obige ist der detaillierte Inhalt vonSo verwenden Sie IDEA, um den kompilierten Bytecode-Inhalt von Java-Dateien anzuzeigen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage