一、字符串常用场景
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
网友评论