一、字符串常用場景
String str1= "abc";
String str2="abc";
String str3="a"+"bc";
String str4=new String("abc");
String str5= "a"+new String("bc");
1、當(dāng)執(zhí)行str1="abc"時(shí),
會(huì)先去常量池中查找是否有abc這個(gè)字符串射窒,如果沒有,分配內(nèi)存,存放abc
2夯尽、當(dāng)執(zhí)行str2?
同樣先去常量池中尋找,如果有直接將當(dāng)前引用給str2
3危尿、當(dāng)執(zhí)行str3時(shí)呐萌,
會(huì)先去初始化a,和 bc,然后將abc的引用返回
4谊娇、當(dāng)執(zhí)行str4時(shí)肺孤,
會(huì)在先去常量池中看是否有abc,然后在分配一塊內(nèi)存济欢,并把引用返回str4
5赠堵、當(dāng)執(zhí)行str5時(shí)
先去常量池查看是否有a常量,然后在堆內(nèi)存中分配一塊空間法褥,存放bc茫叭,
兩者相加會(huì)生產(chǎn)一個(gè)新的內(nèi)存空間,存放abc