編譯期已經(jīng)創(chuàng)建好(即指用雙引號(hào)定義的)的就存儲(chǔ)在常量池中揩慕,如果是運(yùn)行期(new出來(lái)的對(duì)象)則存儲(chǔ)在堆中。對(duì)于equals相等的字符串扮休,在常量池中是只有一份的迎卤,在堆中則有多份。
String str1="abc";
String str2="abc";
String str3="abc";
String str4=new String("abc");
String str5=new String("abc");
String str5=new String("abc");
對(duì)于String str1 = "abc"; 首先在棧中建立一個(gè)str1的引用玷坠,然后在常量池中查找是否存放為"abc"的地址("abc"存放在常量池中蜗搔,引用在棧中),找到就指向它八堡,沒(méi)有就在常量池中造一個(gè)樟凄,然后指向它.