public class Testt{
public static void main(String [] args){
String s1="abc";
String s2="a"+"b"+"c"+"d";
System.out.println(s1+"---"+s2);
}
}
#使用 javac 进行编译
#使用 javap -verbose 类名 查看所有常量池
Microsoft Windows [版本 10.0.22000.556]
(c) Microsoft Corporation。保留所有权利。
C:\Users\12698\Desktop\Java练习项目\Javalangues>javac Testt.java
C:\Users\12698\Desktop\Java练习项目\Javalangues>java Testt
abc---abc
C:\Users\12698\Desktop\Java练习项目\Javalangues>javap -verbose Testt
Classfile /C:/Users/12698/Desktop/Java练习项目/Javalangues/Testt.class
Last modified 2022-3-21; size 596 bytes
MD5 checksum 4168d7a81d09be86d8ac7c5e9762fd3f
Compiled from "Testt.java"
public class Testt
minor version: 0
major version: 52
flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
#1 = Methodref #11.#20 // java/lang/Object."<init>":()V
#2 = String #21 // abc
#3 = Fieldref #22.#23 // java/lang/System.out:Ljava/io/PrintStream;
#4 = Class #24 // java/lang/StringBuilder
#5 = Methodref #4.#20 // java/lang/StringBuilder."<init>":()V
#6 = Methodref #4.#25 // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
#7 = String #26 // ---
#8 = Methodref #4.#27 // java/lang/StringBuilder.toString:()Ljava/lang/String;
#9 = Methodref #28.#29 // java/io/PrintStream.println:(Ljava/lang/String;)V
#10 = Class #30 // Testt
#11 = Class #31 // java/lang/Object
#12 = Utf8 <init>
#13 = Utf8 ()V
#14 = Utf8 Code
#15 = Utf8 LineNumberTable
#16 = Utf8 main
#17 = Utf8 ([Ljava/lang/String;)V
#18 = Utf8 SourceFile
#19 = Utf8 Testt.java
#20 = NameAndType #12:#13 // "<init>":()V
#21 = Utf8 abc
#22 = Class #32 // java/lang/System
#23 = NameAndType #33:#34 // out:Ljava/io/PrintStream;
#24 = Utf8 java/lang/StringBuilder
#25 = NameAndType #35:#36 // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
#26 = Utf8 ---
#27 = NameAndType #37:#38 // toString:()Ljava/lang/String;
#28 = Class #39 // java/io/PrintStream
#29 = NameAndType #40:#41 // println:(Ljava/lang/String;)V
#30 = Utf8 Testt
#31 = Utf8 java/lang/Object
#32 = Utf8 java/lang/System
#33 = Utf8 out
#34 = Utf8 Ljava/io/PrintStream;
#35 = Utf8 append
#36 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder;
#37 = Utf8 toString
#38 = Utf8 ()Ljava/lang/String;
#39 = Utf8 java/io/PrintStream
#40 = Utf8 println
#41 = Utf8 (Ljava/lang/String;)V
{
public Testt();
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=3, args_size=1
0: ldc #2 // String abc
2: astore_1
3: ldc #2 // String abc
5: astore_2
6: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream;
9: new #4 // class java/lang/StringBuilder
12: dup
13: invokespecial #5 // Method java/lang/StringBuilder."<init>":()V
16: aload_1
17: invokevirtual #6 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
20: ldc #7 // String ---
22: invokevirtual #6 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
25: aload_2
26: invokevirtual #6 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
29: invokevirtual #8 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
32: invokevirtual #9 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
35: return
LineNumberTable:
line 3: 0
line 4: 3
line 5: 6
line 7: 35
}
SourceFile: "Testt.java"
C:\Users\12698\Desktop\Java练习项目\Javalangues>