java中的字符串

一、字符串常用场景

String str1= "abc";

String str2="abc";

String str3="a"+"bc";

String str4=new String("abc");

String str5= "a"+new String("bc");

1、当执行str1="abc"时,

会先去常量池中查找是否有abc这个字符串,如果没有,分配内存,存放abc

2、当执行str2 

同样先去常量池中寻找,如果有直接将当前引用给str2

3、当执行str3时,

会先去初始化a,和 bc,然后将abc的引用返回

4、当执行str4时,

会在先去常量池中看是否有abc,然后在分配一块内存,并把引用返回str4

5、当执行str5时

先去常量池查看是否有a常量,然后在堆内存中分配一块空间,存放bc,

两者相加会生产一个新的内存空间,存放abc

你可能感兴趣的:(java中的字符串)