600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > java字符串怎么拼接字符串_Java中String使用+ 拼接字符串的原理是什么?

java字符串怎么拼接字符串_Java中String使用+ 拼接字符串的原理是什么?

时间:2020-10-06 03:07:30

相关推荐

java字符串怎么拼接字符串_Java中String使用+ 拼接字符串的原理是什么?

来看一段代码

public class Test {

String str1 = "51";

String str2 = "manong";

String str3 = str1 + str2;

}

反编译后,通过javap查看

D:\app>javap -c Test

Compiled from "Test.java"

public class Test extends java.lang.Object{

java.lang.String str1;

java.lang.String str2;

java.lang.String str3;

public Test();

Code:

0: aload_0

1: invokespecial #1; //Method java/lang/Object."":()V

4: aload_0

5: ldc #2; //String 51

7: putfield #3; //Field str1:Ljava/lang/String;

10: aload_0

11: ldc #4; //String manong

13: putfield #5; //Field str2:Ljava/lang/String;

16: aload_0

17: new #6; //class java/lang/StringBuilder

20: dup

21: invokespecial #7; //Method java/lang/StringBuilder."":()V

24: aload_0

25: getfield #3; //Field str1:Ljava/lang/String;

28: invokevirtual #8; //Method java/lang/StringBuilder.append:(Ljava/lang/

String;)Ljava/lang/StringBuilder;

31: aload_0

32: getfield #5; //Field str2:Ljava/lang/String;

35: invokevirtual #8; //Method java/lang/StringBuilder.append:(Ljava/lang/

String;)Ljava/lang/StringBuilder;

38: invokevirtual #9; //Method java/lang/StringBuilder.toString:()Ljava/la

ng/String;

41: putfield #10; //Field str3:Ljava/lang/String;

44: return

}

我们可以发现,原来字符串常量在拼接过程中,是将String转成了StringBuilder后,使用其append方法进行处理的。Java中的+对字符串的拼接,其实现原理是使用StringBuilder.append

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。